@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
@@ -1 +1 @@
1
- {"version":3,"file":"UpdatePaymentPolicyFromItrack.js","sourceRoot":"","sources":["../../../src/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAAC,IAAmB,EAAE,aAA+B,EAAE,EAAE;IACvG,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAA;IAC5E,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA"}
1
+ {"version":3,"file":"UpdatePaymentPolicyFromItrack.js","sourceRoot":"","sources":["../../../src/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,6BAA6B,GAAG,KAAK,EAAC,IAAmB,EAAE,EAAE;IACtE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC1E,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const testSyncPaymentPolicies: () => Promise<void>;
2
+ //# sourceMappingURL=integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.test.d.ts","sourceRoot":"","sources":["../../../src/usecases/PaymentPolicy/integration.test.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,uBAAuB,qBAWnC,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { MysqlDatastore } from "../../infrastructure/mysql/MysqlDatastore.js";
2
+ import { getMysqlConfigFromEnv } from "../../infrastructure/mysql/getPool.js";
3
+ import { TokenManager } from "../../infrastructure/TokenManager.js";
4
+ import { EbayAdapter } from "../../adapters/ebay/EbayAdapter.js";
5
+ import { EbayScopes } from "../../entities/ebay/Scopes.js";
6
+ import { MarketplaceEnum } from "../../entities/ebay/MarketplaceEnum.js";
7
+ import { syncPaymentPolicies } from "./SyncPaymentPoliciesFromEbay.js";
8
+ import { ItrackAdapter } from "../../adapters/itrack/ItrackAdapter.js";
9
+ const PRODUCTION = false;
10
+ // Create mysql connection
11
+ const pool = getMysqlConfigFromEnv();
12
+ const db = new MysqlDatastore(pool);
13
+ //const itrackAdapter = new ItrackAdapter(db)
14
+ // Ebay token business
15
+ const tokenManager = new TokenManager(db, PRODUCTION, Object.values(EbayScopes), MarketplaceEnum.Motors);
16
+ const ebayAdapter = new EbayAdapter(tokenManager);
17
+ const itrackAdapter = new ItrackAdapter(db);
18
+ const production = false;
19
+ export const testSyncPaymentPolicies = async () => {
20
+ await tokenManager.initialize();
21
+ // Attempt to retrieve fullfiment policy(s) from ebay
22
+ const response = await syncPaymentPolicies({
23
+ ebayAdapter,
24
+ itrackAdapter,
25
+ tokenManager,
26
+ production
27
+ });
28
+ console.log(response);
29
+ };
30
+ testSyncPaymentPolicies();
31
+ //# sourceMappingURL=integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration.test.js","sourceRoot":"","sources":["../../../src/usecases/PaymentPolicy/integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAA;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAEtE,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,0BAA0B;AAC1B,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAA;AACpC,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,CAAA;AACnC,6CAA6C;AAE7C,sBAAsB;AACtB,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;AACxG,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,YAAY,CAAC,CAAA;AACjD,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAE,CAAC,CAAA;AAC3C,MAAM,UAAU,GAAG,KAAK,CAAA;AAExB,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,IAAG,EAAE;IAC7C,MAAM,YAAY,CAAC,UAAU,EAAE,CAAA;IAC/B,qDAAqD;IACrD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;QACvC,WAAW;QACX,aAAa;QACb,YAAY;QACZ,UAAU;KACb,CAAC,CAAA;IAEF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AACzB,CAAC,CAAA;AAED,uBAAuB,EAAE,CAAA"}
@@ -0,0 +1,236 @@
1
+ import { WebEbayAdapter } from "../../adapters/ebay/WebEbayAdapter.js";
2
+ import { MarketplaceIdEnum } from "../../entities/ebay/MarketplaceEnum.js";
3
+ import { FulfillmentPolicy } from "../../entities/ebay/FulfillmentPolicy.js";
4
+ import { PaymentPolicy } from "../../entities/ebay/PaymentPolicy.js";
5
+ import { ReturnPolicy } from "../../entities/ebay/ReturnPolicy.js";
6
+ import { EbayPolicyRow } from "../../entities/itrack/ItrackEbayPolicy.js";
7
+ /**
8
+ * Web-friendly use case for getting eBay policies (fulfillment, payment, return)
9
+ *
10
+ * This use case is designed for web applications where:
11
+ * - No MySQL database connection is available
12
+ * - OAuth is handled via EbayOAuthManager
13
+ * - The web app handles data persistence
14
+ *
15
+ * Unlike SyncFulfillmentPolicies.ts which:
16
+ * - Requires TokenManager and ItrackAdapter
17
+ * - Pulls data from product system (itrack)
18
+ * - Compares and syncs automatically
19
+ * - Stores keys in TokenManager
20
+ *
21
+ * This use case simply:
22
+ * - Fetches all policies from eBay
23
+ * - Returns them to the web app
24
+ * - Lets the web app handle storage/comparison
25
+ */
26
+ export interface WebGetEbayPoliciesInput {
27
+ /** WebEbayAdapter instance (uses EbayOAuthManager) */
28
+ ebayAdapter: WebEbayAdapter;
29
+ /** eBay marketplace ID (e.g., EBAY_US, EBAY_GB) */
30
+ marketplaceId: MarketplaceIdEnum;
31
+ }
32
+ export interface WebGetEbayPoliciesResult {
33
+ success: boolean;
34
+ policies: {
35
+ fulfillment: FulfillmentPolicy[];
36
+ payment: PaymentPolicy[];
37
+ return: ReturnPolicy[];
38
+ };
39
+ error?: {
40
+ message: string;
41
+ details?: any;
42
+ };
43
+ }
44
+ /**
45
+ * Fetches all eBay policies (fulfillment, payment, and return) for use in a web application
46
+ *
47
+ * @param params - Input parameters including the WebEbayAdapter and marketplace ID
48
+ * @returns Object containing arrays of all three policy types
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * // In your Express route handler
53
+ * app.get('/api/ebay/policies', async (req, res) => {
54
+ * const oauthManager = new EbayOAuthManager({...config})
55
+ * const webAdapter = new WebEbayAdapter(oauthManager)
56
+ *
57
+ * const result = await webGetEbayPolicies({
58
+ * ebayAdapter: webAdapter,
59
+ * marketplaceId: MarketplaceIdEnum.EBAY_US
60
+ * })
61
+ *
62
+ * if (result.success) {
63
+ * // Web app can now save these to its database
64
+ * await savePoliciesToDatabase(result.policies)
65
+ * res.json({ policies: result.policies })
66
+ * } else {
67
+ * res.status(500).json({ error: result.error })
68
+ * }
69
+ * })
70
+ * ```
71
+ */
72
+ export declare const webGetEbayPolicies: (params: WebGetEbayPoliciesInput) => Promise<WebGetEbayPoliciesResult>;
73
+ /**
74
+ * Fetches only fulfillment policies from eBay for use in a web application
75
+ *
76
+ * @param params - Input parameters including the WebEbayAdapter and marketplace ID
77
+ * @returns Array of fulfillment policies
78
+ *
79
+ * @example
80
+ * ```typescript
81
+ * // In your Express route handler
82
+ * app.get('/api/ebay/policies/fulfillment', async (req, res) => {
83
+ * const oauthManager = new EbayOAuthManager({...config})
84
+ * const webAdapter = new WebEbayAdapter(oauthManager)
85
+ *
86
+ * const result = await webGetFulfillmentPolicies({
87
+ * ebayAdapter: webAdapter,
88
+ * marketplaceId: MarketplaceIdEnum.EBAY_US
89
+ * })
90
+ *
91
+ * if (result.success) {
92
+ * res.json({ policies: result.policies })
93
+ * } else {
94
+ * res.status(500).json({ error: result.error })
95
+ * }
96
+ * })
97
+ * ```
98
+ */
99
+ export declare const webGetFulfillmentPolicies: (params: WebGetEbayPoliciesInput) => Promise<{
100
+ success: boolean;
101
+ policies: FulfillmentPolicy[];
102
+ error?: {
103
+ message: string;
104
+ details?: any;
105
+ };
106
+ }>;
107
+ /**
108
+ * Fetches only payment policies from eBay for use in a web application
109
+ *
110
+ * @param params - Input parameters including the WebEbayAdapter and marketplace ID
111
+ * @returns Array of payment policies
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * // In your Express route handler
116
+ * app.get('/api/ebay/policies/payment', async (req, res) => {
117
+ * const oauthManager = new EbayOAuthManager({...config})
118
+ * const webAdapter = new WebEbayAdapter(oauthManager)
119
+ *
120
+ * const result = await webGetPaymentPolicies({
121
+ * ebayAdapter: webAdapter,
122
+ * marketplaceId: MarketplaceIdEnum.EBAY_US
123
+ * })
124
+ *
125
+ * if (result.success) {
126
+ * res.json({ policies: result.policies })
127
+ * } else {
128
+ * res.status(500).json({ error: result.error })
129
+ * }
130
+ * })
131
+ * ```
132
+ */
133
+ export declare const webGetPaymentPolicies: (params: WebGetEbayPoliciesInput) => Promise<{
134
+ success: boolean;
135
+ policies: PaymentPolicy[];
136
+ error?: {
137
+ message: string;
138
+ details?: any;
139
+ };
140
+ }>;
141
+ /**
142
+ * Fetches only return policies from eBay for use in a web application
143
+ *
144
+ * @param params - Input parameters including the WebEbayAdapter and marketplace ID
145
+ * @returns Array of return policies
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * // In your Express route handler
150
+ * app.get('/api/ebay/policies/return', async (req, res) => {
151
+ * const oauthManager = new EbayOAuthManager({...config})
152
+ * const webAdapter = new WebEbayAdapter(oauthManager)
153
+ *
154
+ * const result = await webGetReturnPolicies({
155
+ * ebayAdapter: webAdapter,
156
+ * marketplaceId: MarketplaceIdEnum.EBAY_US
157
+ * })
158
+ *
159
+ * if (result.success) {
160
+ * res.json({ policies: result.policies })
161
+ * } else {
162
+ * res.status(500).json({ error: result.error })
163
+ * }
164
+ * })
165
+ * ```
166
+ */
167
+ export declare const webGetReturnPolicies: (params: WebGetEbayPoliciesInput) => Promise<{
168
+ success: boolean;
169
+ policies: ReturnPolicy[];
170
+ error?: {
171
+ message: string;
172
+ details?: any;
173
+ };
174
+ }>;
175
+ /**
176
+ * Input parameters for webGetNewEbayPolicies
177
+ */
178
+ export interface WebGetNewEbayPoliciesInput extends WebGetEbayPoliciesInput {
179
+ /** Array of existing policy rows from the database */
180
+ existingPolicies: EbayPolicyRow[];
181
+ }
182
+ /**
183
+ * Result from webGetNewEbayPolicies containing only new policies
184
+ */
185
+ export interface WebGetNewEbayPoliciesResult {
186
+ success: boolean;
187
+ newPolicies: {
188
+ fulfillment: FulfillmentPolicy[];
189
+ payment: PaymentPolicy[];
190
+ return: ReturnPolicy[];
191
+ };
192
+ error?: {
193
+ message: string;
194
+ details?: any;
195
+ };
196
+ }
197
+ /**
198
+ * Fetches eBay policies and compares them with existing policies from the database,
199
+ * returning only new policies that don't exist in the database.
200
+ *
201
+ * This method:
202
+ * 1. Fetches all policies from eBay (fulfillment, payment, return)
203
+ * 2. Compares them with existing policies from the database using policyid
204
+ * 3. Returns only policies that are new (not in the database)
205
+ *
206
+ * @param params - Input parameters including the WebEbayAdapter, marketplace ID, and existing policies
207
+ * @returns Object containing arrays of only NEW policies for each type
208
+ *
209
+ * @example
210
+ * ```typescript
211
+ * // In your Express route handler
212
+ * app.get('/api/ebay/policies/new', async (req, res) => {
213
+ * const oauthManager = new EbayOAuthManager({...config})
214
+ * const webAdapter = new WebEbayAdapter(oauthManager)
215
+ *
216
+ * // Get existing policies from your database
217
+ * const existingPolicies = await db.query('SELECT * FROM ebay_policies')
218
+ *
219
+ * const result = await webGetNewEbayPolicies({
220
+ * ebayAdapter: webAdapter,
221
+ * marketplaceId: MarketplaceIdEnum.EBAY_US,
222
+ * existingPolicies: existingPolicies
223
+ * })
224
+ *
225
+ * if (result.success) {
226
+ * // Only save the new policies to the database
227
+ * await saveNewPoliciesToDatabase(result.newPolicies)
228
+ * res.json({ newPolicies: result.newPolicies })
229
+ * } else {
230
+ * res.status(500).json({ error: result.error })
231
+ * }
232
+ * })
233
+ * ```
234
+ */
235
+ export declare const webGetNewEbayPolicies: (params: WebGetNewEbayPoliciesInput) => Promise<WebGetNewEbayPoliciesResult>;
236
+ //# sourceMappingURL=WebGetEbayPolicies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGetEbayPolicies.d.ts","sourceRoot":"","sources":["../../../src/usecases/Policy/WebGetEbayPolicies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Fetches all eBay policies (fulfillment, payment, and return) for use in a web application
3
+ *
4
+ * @param params - Input parameters including the WebEbayAdapter and marketplace ID
5
+ * @returns Object containing arrays of all three policy types
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * // In your Express route handler
10
+ * app.get('/api/ebay/policies', async (req, res) => {
11
+ * const oauthManager = new EbayOAuthManager({...config})
12
+ * const webAdapter = new WebEbayAdapter(oauthManager)
13
+ *
14
+ * const result = await webGetEbayPolicies({
15
+ * ebayAdapter: webAdapter,
16
+ * marketplaceId: MarketplaceIdEnum.EBAY_US
17
+ * })
18
+ *
19
+ * if (result.success) {
20
+ * // Web app can now save these to its database
21
+ * await savePoliciesToDatabase(result.policies)
22
+ * res.json({ policies: result.policies })
23
+ * } else {
24
+ * res.status(500).json({ error: result.error })
25
+ * }
26
+ * })
27
+ * ```
28
+ */
29
+ export const webGetEbayPolicies = async (params) => {
30
+ try {
31
+ // Fetch all three policy types in parallel
32
+ const [fulfillmentResponse, paymentResponse, returnResponse] = await Promise.all([
33
+ params.ebayAdapter.getFulfillmentPolicies(),
34
+ params.ebayAdapter.getPaymentPolicies(),
35
+ params.ebayAdapter.getReturnPolicies()
36
+ ]);
37
+ // Check if all requests were successful
38
+ if (fulfillmentResponse.success && paymentResponse.success && returnResponse.success) {
39
+ return {
40
+ success: true,
41
+ policies: {
42
+ fulfillment: fulfillmentResponse.data?.fulfillmentPolicies || [],
43
+ payment: paymentResponse.data?.paymentPolicies || [],
44
+ return: returnResponse.data?.returnPolicies || []
45
+ }
46
+ };
47
+ }
48
+ else {
49
+ // Collect errors from failed responses
50
+ const errors = [];
51
+ if (!fulfillmentResponse.success) {
52
+ errors.push({ type: 'fulfillment', details: fulfillmentResponse.error });
53
+ }
54
+ if (!paymentResponse.success) {
55
+ errors.push({ type: 'payment', details: paymentResponse.error });
56
+ }
57
+ if (!returnResponse.success) {
58
+ errors.push({ type: 'return', details: returnResponse.error });
59
+ }
60
+ return {
61
+ success: false,
62
+ policies: {
63
+ fulfillment: fulfillmentResponse.data?.fulfillmentPolicies || [],
64
+ payment: paymentResponse.data?.paymentPolicies || [],
65
+ return: returnResponse.data?.returnPolicies || []
66
+ },
67
+ error: {
68
+ message: 'Failed to retrieve one or more policy types from eBay',
69
+ details: errors
70
+ }
71
+ };
72
+ }
73
+ }
74
+ catch (error) {
75
+ return {
76
+ success: false,
77
+ policies: {
78
+ fulfillment: [],
79
+ payment: [],
80
+ return: []
81
+ },
82
+ error: {
83
+ message: error instanceof Error ? error.message : 'Unknown error',
84
+ details: error
85
+ }
86
+ };
87
+ }
88
+ };
89
+ /**
90
+ * Fetches only fulfillment policies from eBay for use in a web application
91
+ *
92
+ * @param params - Input parameters including the WebEbayAdapter and marketplace ID
93
+ * @returns Array of fulfillment policies
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * // In your Express route handler
98
+ * app.get('/api/ebay/policies/fulfillment', async (req, res) => {
99
+ * const oauthManager = new EbayOAuthManager({...config})
100
+ * const webAdapter = new WebEbayAdapter(oauthManager)
101
+ *
102
+ * const result = await webGetFulfillmentPolicies({
103
+ * ebayAdapter: webAdapter,
104
+ * marketplaceId: MarketplaceIdEnum.EBAY_US
105
+ * })
106
+ *
107
+ * if (result.success) {
108
+ * res.json({ policies: result.policies })
109
+ * } else {
110
+ * res.status(500).json({ error: result.error })
111
+ * }
112
+ * })
113
+ * ```
114
+ */
115
+ export const webGetFulfillmentPolicies = async (params) => {
116
+ try {
117
+ const response = await params.ebayAdapter.getFulfillmentPolicies();
118
+ if (response.success && response.data) {
119
+ return {
120
+ success: true,
121
+ policies: response.data.fulfillmentPolicies || []
122
+ };
123
+ }
124
+ else {
125
+ return {
126
+ success: false,
127
+ policies: [],
128
+ error: {
129
+ message: 'Failed to retrieve fulfillment policies from eBay',
130
+ details: response.error
131
+ }
132
+ };
133
+ }
134
+ }
135
+ catch (error) {
136
+ return {
137
+ success: false,
138
+ policies: [],
139
+ error: {
140
+ message: error instanceof Error ? error.message : 'Unknown error',
141
+ details: error
142
+ }
143
+ };
144
+ }
145
+ };
146
+ /**
147
+ * Fetches only payment policies from eBay for use in a web application
148
+ *
149
+ * @param params - Input parameters including the WebEbayAdapter and marketplace ID
150
+ * @returns Array of payment policies
151
+ *
152
+ * @example
153
+ * ```typescript
154
+ * // In your Express route handler
155
+ * app.get('/api/ebay/policies/payment', async (req, res) => {
156
+ * const oauthManager = new EbayOAuthManager({...config})
157
+ * const webAdapter = new WebEbayAdapter(oauthManager)
158
+ *
159
+ * const result = await webGetPaymentPolicies({
160
+ * ebayAdapter: webAdapter,
161
+ * marketplaceId: MarketplaceIdEnum.EBAY_US
162
+ * })
163
+ *
164
+ * if (result.success) {
165
+ * res.json({ policies: result.policies })
166
+ * } else {
167
+ * res.status(500).json({ error: result.error })
168
+ * }
169
+ * })
170
+ * ```
171
+ */
172
+ export const webGetPaymentPolicies = async (params) => {
173
+ try {
174
+ const response = await params.ebayAdapter.getPaymentPolicies();
175
+ if (response.success && response.data) {
176
+ return {
177
+ success: true,
178
+ policies: response.data.paymentPolicies || []
179
+ };
180
+ }
181
+ else {
182
+ return {
183
+ success: false,
184
+ policies: [],
185
+ error: {
186
+ message: 'Failed to retrieve payment policies from eBay',
187
+ details: response.error
188
+ }
189
+ };
190
+ }
191
+ }
192
+ catch (error) {
193
+ return {
194
+ success: false,
195
+ policies: [],
196
+ error: {
197
+ message: error instanceof Error ? error.message : 'Unknown error',
198
+ details: error
199
+ }
200
+ };
201
+ }
202
+ };
203
+ /**
204
+ * Fetches only return policies from eBay for use in a web application
205
+ *
206
+ * @param params - Input parameters including the WebEbayAdapter and marketplace ID
207
+ * @returns Array of return policies
208
+ *
209
+ * @example
210
+ * ```typescript
211
+ * // In your Express route handler
212
+ * app.get('/api/ebay/policies/return', async (req, res) => {
213
+ * const oauthManager = new EbayOAuthManager({...config})
214
+ * const webAdapter = new WebEbayAdapter(oauthManager)
215
+ *
216
+ * const result = await webGetReturnPolicies({
217
+ * ebayAdapter: webAdapter,
218
+ * marketplaceId: MarketplaceIdEnum.EBAY_US
219
+ * })
220
+ *
221
+ * if (result.success) {
222
+ * res.json({ policies: result.policies })
223
+ * } else {
224
+ * res.status(500).json({ error: result.error })
225
+ * }
226
+ * })
227
+ * ```
228
+ */
229
+ export const webGetReturnPolicies = async (params) => {
230
+ try {
231
+ const response = await params.ebayAdapter.getReturnPolicies();
232
+ if (response.success && response.data) {
233
+ return {
234
+ success: true,
235
+ policies: response.data.returnPolicies || []
236
+ };
237
+ }
238
+ else {
239
+ return {
240
+ success: false,
241
+ policies: [],
242
+ error: {
243
+ message: 'Failed to retrieve return policies from eBay',
244
+ details: response.error
245
+ }
246
+ };
247
+ }
248
+ }
249
+ catch (error) {
250
+ return {
251
+ success: false,
252
+ policies: [],
253
+ error: {
254
+ message: error instanceof Error ? error.message : 'Unknown error',
255
+ details: error
256
+ }
257
+ };
258
+ }
259
+ };
260
+ /**
261
+ * Fetches eBay policies and compares them with existing policies from the database,
262
+ * returning only new policies that don't exist in the database.
263
+ *
264
+ * This method:
265
+ * 1. Fetches all policies from eBay (fulfillment, payment, return)
266
+ * 2. Compares them with existing policies from the database using policyid
267
+ * 3. Returns only policies that are new (not in the database)
268
+ *
269
+ * @param params - Input parameters including the WebEbayAdapter, marketplace ID, and existing policies
270
+ * @returns Object containing arrays of only NEW policies for each type
271
+ *
272
+ * @example
273
+ * ```typescript
274
+ * // In your Express route handler
275
+ * app.get('/api/ebay/policies/new', async (req, res) => {
276
+ * const oauthManager = new EbayOAuthManager({...config})
277
+ * const webAdapter = new WebEbayAdapter(oauthManager)
278
+ *
279
+ * // Get existing policies from your database
280
+ * const existingPolicies = await db.query('SELECT * FROM ebay_policies')
281
+ *
282
+ * const result = await webGetNewEbayPolicies({
283
+ * ebayAdapter: webAdapter,
284
+ * marketplaceId: MarketplaceIdEnum.EBAY_US,
285
+ * existingPolicies: existingPolicies
286
+ * })
287
+ *
288
+ * if (result.success) {
289
+ * // Only save the new policies to the database
290
+ * await saveNewPoliciesToDatabase(result.newPolicies)
291
+ * res.json({ newPolicies: result.newPolicies })
292
+ * } else {
293
+ * res.status(500).json({ error: result.error })
294
+ * }
295
+ * })
296
+ * ```
297
+ */
298
+ export const webGetNewEbayPolicies = async (params) => {
299
+ try {
300
+ // Fetch all three policy types in parallel
301
+ const [fulfillmentResponse, paymentResponse, returnResponse] = await Promise.all([
302
+ params.ebayAdapter.getFulfillmentPolicies(),
303
+ params.ebayAdapter.getPaymentPolicies(),
304
+ params.ebayAdapter.getReturnPolicies()
305
+ ]);
306
+ // Check if all requests were successful
307
+ if (!fulfillmentResponse.success || !paymentResponse.success || !returnResponse.success) {
308
+ // Collect errors from failed responses
309
+ const errors = [];
310
+ if (!fulfillmentResponse.success) {
311
+ errors.push({ type: 'fulfillment', details: fulfillmentResponse.error });
312
+ }
313
+ if (!paymentResponse.success) {
314
+ errors.push({ type: 'payment', details: paymentResponse.error });
315
+ }
316
+ if (!returnResponse.success) {
317
+ errors.push({ type: 'return', details: returnResponse.error });
318
+ }
319
+ return {
320
+ success: false,
321
+ newPolicies: {
322
+ fulfillment: [],
323
+ payment: [],
324
+ return: []
325
+ },
326
+ error: {
327
+ message: 'Failed to retrieve one or more policy types from eBay',
328
+ details: errors
329
+ }
330
+ };
331
+ }
332
+ // Get policies from eBay responses
333
+ const ebayFulfillmentPolicies = fulfillmentResponse.data?.fulfillmentPolicies || [];
334
+ const ebayPaymentPolicies = paymentResponse.data?.paymentPolicies || [];
335
+ const ebayReturnPolicies = returnResponse.data?.returnPolicies || [];
336
+ // Separate existing policies by type
337
+ const existingFulfillmentPolicyIds = params.existingPolicies
338
+ .filter(p => p.policytype === 'fulfillment')
339
+ .map(p => p.policyid);
340
+ const existingPaymentPolicyIds = params.existingPolicies
341
+ .filter(p => p.policytype === 'payment')
342
+ .map(p => p.policyid);
343
+ const existingReturnPolicyIds = params.existingPolicies
344
+ .filter(p => p.policytype === 'return')
345
+ .map(p => p.policyid);
346
+ // Filter out policies that already exist in the database
347
+ const newFulfillmentPolicies = ebayFulfillmentPolicies.filter(policy => !existingFulfillmentPolicyIds.includes(policy.fulfillmentPolicyId));
348
+ const newPaymentPolicies = ebayPaymentPolicies.filter(policy => !existingPaymentPolicyIds.includes(policy.paymentPolicyId));
349
+ const newReturnPolicies = ebayReturnPolicies.filter(policy => !existingReturnPolicyIds.includes(policy.returnPolicyId));
350
+ return {
351
+ success: true,
352
+ newPolicies: {
353
+ fulfillment: newFulfillmentPolicies,
354
+ payment: newPaymentPolicies,
355
+ return: newReturnPolicies
356
+ }
357
+ };
358
+ }
359
+ catch (error) {
360
+ return {
361
+ success: false,
362
+ newPolicies: {
363
+ fulfillment: [],
364
+ payment: [],
365
+ return: []
366
+ },
367
+ error: {
368
+ message: error instanceof Error ? error.message : 'Unknown error',
369
+ details: error
370
+ }
371
+ };
372
+ }
373
+ };
374
+ //# sourceMappingURL=WebGetEbayPolicies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGetEbayPolicies.js","sourceRoot":"","sources":["../../../src/usecases/Policy/WebGetEbayPolicies.ts"],"names":[],"mappings":"AA+CA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACtC,MAA+B,EACK,EAAE;IACtC,IAAI,CAAC;QACJ,2CAA2C;QAC3C,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChF,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAE;YAC3C,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE;YACvC,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE;SACtC,CAAC,CAAA;QAEF,wCAAwC;QACxC,IAAI,mBAAmB,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YACtF,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE;oBACT,WAAW,EAAE,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,IAAI,EAAE;oBAChE,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,eAAe,IAAI,EAAE;oBACpD,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,cAAc,IAAI,EAAE;iBACjD;aACD,CAAA;QACF,CAAC;aAAM,CAAC;YACP,uCAAuC;YACvC,MAAM,MAAM,GAAG,EAAE,CAAA;YACjB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAA;YACzE,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAA;YACjE,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAA;YAC/D,CAAC;YAED,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE;oBACT,WAAW,EAAE,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,IAAI,EAAE;oBAChE,OAAO,EAAE,eAAe,CAAC,IAAI,EAAE,eAAe,IAAI,EAAE;oBACpD,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,cAAc,IAAI,EAAE;iBACjD;gBACD,KAAK,EAAE;oBACN,OAAO,EAAE,uDAAuD;oBAChE,OAAO,EAAE,MAAM;iBACf;aACD,CAAA;QACF,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE;gBACT,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,EAAE;aACV;YACD,KAAK,EAAE;gBACN,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBACjE,OAAO,EAAE,KAAK;aACd;SACD,CAAA;IACF,CAAC;AACF,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,EAC7C,MAA+B,EAC4E,EAAE;IAC7G,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAA;QAElE,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE;aACjD,CAAA;QACF,CAAC;aAAM,CAAC;YACP,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE;oBACN,OAAO,EAAE,mDAAmD;oBAC5D,OAAO,EAAE,QAAQ,CAAC,KAAK;iBACvB;aACD,CAAA;QACF,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE;gBACN,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBACjE,OAAO,EAAE,KAAK;aACd;SACD,CAAA;IACF,CAAC;AACF,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACzC,MAA+B,EACwE,EAAE;IACzG,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAA;QAE9D,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE;aAC7C,CAAA;QACF,CAAC;aAAM,CAAC;YACP,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE;oBACN,OAAO,EAAE,+CAA+C;oBACxD,OAAO,EAAE,QAAQ,CAAC,KAAK;iBACvB;aACD,CAAA;QACF,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE;gBACN,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBACjE,OAAO,EAAE,KAAK;aACd;SACD,CAAA;IACF,CAAC;AACF,CAAC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACxC,MAA+B,EACuE,EAAE;IACxG,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAA;QAE7D,IAAI,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YACvC,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,IAAI,EAAE;aAC5C,CAAA;QACF,CAAC;aAAM,CAAC;YACP,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,EAAE;gBACZ,KAAK,EAAE;oBACN,OAAO,EAAE,8CAA8C;oBACvD,OAAO,EAAE,QAAQ,CAAC,KAAK;iBACvB;aACD,CAAA;QACF,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE;gBACN,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBACjE,OAAO,EAAE,KAAK;aACd;SACD,CAAA;IACF,CAAC;AACF,CAAC,CAAA;AA0BD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EACzC,MAAkC,EACK,EAAE;IACzC,IAAI,CAAC;QACJ,2CAA2C;QAC3C,MAAM,CAAC,mBAAmB,EAAE,eAAe,EAAE,cAAc,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAChF,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAE;YAC3C,MAAM,CAAC,WAAW,CAAC,kBAAkB,EAAE;YACvC,MAAM,CAAC,WAAW,CAAC,iBAAiB,EAAE;SACtC,CAAC,CAAA;QAEF,wCAAwC;QACxC,IAAI,CAAC,mBAAmB,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;YACzF,uCAAuC;YACvC,MAAM,MAAM,GAAG,EAAE,CAAA;YACjB,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAA;YACzE,CAAC;YACD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC,CAAA;YACjE,CAAC;YACD,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAA;YAC/D,CAAC;YAED,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE;oBACZ,WAAW,EAAE,EAAE;oBACf,OAAO,EAAE,EAAE;oBACX,MAAM,EAAE,EAAE;iBACV;gBACD,KAAK,EAAE;oBACN,OAAO,EAAE,uDAAuD;oBAChE,OAAO,EAAE,MAAM;iBACf;aACD,CAAA;QACF,CAAC;QAED,mCAAmC;QACnC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC,IAAI,EAAE,mBAAmB,IAAI,EAAE,CAAA;QACnF,MAAM,mBAAmB,GAAG,eAAe,CAAC,IAAI,EAAE,eAAe,IAAI,EAAE,CAAA;QACvE,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,EAAE,cAAc,IAAI,EAAE,CAAA;QAEpE,qCAAqC;QACrC,MAAM,4BAA4B,GAAG,MAAM,CAAC,gBAAgB;aAC1D,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,aAAa,CAAC;aAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QAEtB,MAAM,wBAAwB,GAAG,MAAM,CAAC,gBAAgB;aACtD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QAEtB,MAAM,uBAAuB,GAAG,MAAM,CAAC,gBAAgB;aACrD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;QAEtB,yDAAyD;QACzD,MAAM,sBAAsB,GAAG,uBAAuB,CAAC,MAAM,CAC5D,MAAM,CAAC,EAAE,CAAC,CAAC,4BAA4B,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAC5E,CAAA;QAED,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,MAAM,CACpD,MAAM,CAAC,EAAE,CAAC,CAAC,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CACpE,CAAA;QAED,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAClD,MAAM,CAAC,EAAE,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAClE,CAAA;QAED,OAAO;YACN,OAAO,EAAE,IAAI;YACb,WAAW,EAAE;gBACZ,WAAW,EAAE,sBAAsB;gBACnC,OAAO,EAAE,kBAAkB;gBAC3B,MAAM,EAAE,iBAAiB;aACzB;SACD,CAAA;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO;YACN,OAAO,EAAE,KAAK;YACd,WAAW,EAAE;gBACZ,WAAW,EAAE,EAAE;gBACf,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,EAAE;aACV;YACD,KAAK,EAAE;gBACN,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;gBACjE,OAAO,EAAE,KAAK;aACd;SACD,CAAA;IACF,CAAC;AACF,CAAC,CAAA"}