@drttix/drt-sdk 1.3.5 → 1.4.1

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 (312) hide show
  1. package/README.md +29 -4
  2. package/azure-pipelines.yml +2 -0
  3. package/dist/cjs/index.d.ts +1 -0
  4. package/dist/cjs/src/definitions/shopper.d.ts +2 -0
  5. package/dist/cjs/src/definitions/shopper.js +2 -0
  6. package/dist/cjs/src/functions/sdkConfig.d.ts +47 -16
  7. package/dist/cjs/src/functions/sdkConfig.js +63 -43
  8. package/dist/cjs/src/generated/portal/core/OpenAPI.js +1 -1
  9. package/dist/cjs/src/generated/portal/core/request.js +41 -7
  10. package/dist/cjs/src/generated/scanner/core/OpenAPI.js +1 -1
  11. package/dist/cjs/src/generated/scanner/core/request.js +41 -7
  12. package/dist/cjs/src/generated/scanner/index.d.ts +1 -0
  13. package/dist/cjs/src/generated/scanner/models/OrderScan.d.ts +9 -0
  14. package/dist/cjs/src/generated/scanner/models/OrderScan.js +2 -0
  15. package/dist/cjs/src/generated/scanner/models/TicketScan.d.ts +1 -0
  16. package/dist/cjs/src/generated/scanner/services/ScanningService.d.ts +16 -0
  17. package/dist/cjs/src/generated/scanner/services/ScanningService.js +28 -0
  18. package/dist/cjs/src/generated/scanner/types.d.ts +1 -0
  19. package/dist/cjs/src/generated/shopper/core/OpenAPI.js +1 -1
  20. package/dist/cjs/src/generated/shopper/core/request.js +41 -7
  21. package/dist/cjs/src/generated/shopper/index.d.ts +33 -1
  22. package/dist/cjs/src/generated/shopper/index.js +3 -1
  23. package/dist/cjs/src/generated/shopper/models/AnswerInput.d.ts +6 -0
  24. package/dist/cjs/src/generated/shopper/models/AnswerInput.js +2 -0
  25. package/dist/cjs/src/generated/shopper/models/CartAmounts.d.ts +38 -0
  26. package/dist/cjs/src/generated/shopper/models/CartAmounts.js +2 -0
  27. package/dist/cjs/src/generated/shopper/models/CartClearResult.d.ts +14 -0
  28. package/dist/cjs/src/generated/shopper/models/CartClearResult.js +2 -0
  29. package/dist/cjs/src/generated/shopper/models/CartCountsLite.d.ts +14 -0
  30. package/dist/cjs/src/generated/shopper/models/CartCountsLite.js +2 -0
  31. package/dist/cjs/src/generated/shopper/models/CartTotals.d.ts +22 -0
  32. package/dist/cjs/src/generated/shopper/models/CartTotals.js +2 -0
  33. package/dist/cjs/src/generated/shopper/models/CheckoutStep.d.ts +10 -0
  34. package/dist/cjs/src/generated/shopper/models/CheckoutStep.js +2 -0
  35. package/dist/cjs/src/generated/shopper/models/CheckoutStepsResponse.d.ts +7 -0
  36. package/dist/cjs/src/generated/shopper/models/CheckoutStepsResponse.js +2 -0
  37. package/dist/cjs/src/generated/shopper/models/CheckoutSubmitBody.d.ts +3 -13
  38. package/dist/cjs/src/generated/shopper/models/CompletePaymentBody.d.ts +30 -0
  39. package/dist/cjs/src/generated/shopper/models/CompletePaymentBody.js +2 -0
  40. package/dist/cjs/src/generated/shopper/models/ConnectedAccountResponse.d.ts +18 -0
  41. package/dist/cjs/src/generated/shopper/models/ConnectedAccountResponse.js +2 -0
  42. package/dist/cjs/src/generated/shopper/models/CorrelatedCode.d.ts +14 -0
  43. package/dist/cjs/src/generated/shopper/models/CorrelatedCode.js +2 -0
  44. package/dist/cjs/src/generated/shopper/models/CreatePaymentIntentBody.d.ts +22 -0
  45. package/dist/cjs/src/generated/shopper/models/CreatePaymentIntentBody.js +2 -0
  46. package/dist/cjs/src/generated/shopper/models/CreatePaymentIntentResponse.d.ts +47 -0
  47. package/dist/cjs/src/generated/shopper/models/CreatePaymentIntentResponse.js +2 -0
  48. package/dist/cjs/src/generated/shopper/models/EventLegend.d.ts +12 -0
  49. package/dist/cjs/src/generated/shopper/models/EventLegend.js +2 -0
  50. package/dist/cjs/src/generated/shopper/models/EventLegendItem.d.ts +9 -0
  51. package/dist/cjs/src/generated/shopper/models/EventLegendItem.js +2 -0
  52. package/dist/cjs/src/generated/shopper/models/ExchangeAnswersBody.d.ts +4 -0
  53. package/dist/cjs/src/generated/shopper/models/ExchangeAnswersBody.js +2 -0
  54. package/dist/cjs/src/generated/shopper/models/ExchangeCancelSeatResponse.d.ts +7 -0
  55. package/dist/cjs/src/generated/shopper/models/ExchangeCancelSeatResponse.js +2 -0
  56. package/dist/cjs/src/generated/shopper/models/ExchangeShow.d.ts +12 -0
  57. package/dist/cjs/src/generated/shopper/models/ExchangeShow.js +2 -0
  58. package/dist/cjs/src/generated/shopper/models/ExchangeShowsResponse.d.ts +8 -0
  59. package/dist/cjs/src/generated/shopper/models/ExchangeShowsResponse.js +2 -0
  60. package/dist/cjs/src/generated/shopper/models/ExtendTimerDto.d.ts +6 -0
  61. package/dist/cjs/src/generated/shopper/models/ExtendTimerDto.js +2 -0
  62. package/dist/cjs/src/generated/shopper/models/ExtendTimerResponseDto.d.ts +10 -0
  63. package/dist/cjs/src/generated/shopper/models/ExtendTimerResponseDto.js +2 -0
  64. package/dist/cjs/src/generated/shopper/models/FullEventDetails.d.ts +2 -0
  65. package/dist/cjs/src/generated/shopper/models/GaSelection.d.ts +24 -0
  66. package/dist/cjs/src/generated/shopper/models/GaSelection.js +2 -0
  67. package/dist/cjs/src/generated/shopper/models/GaTier.d.ts +27 -0
  68. package/dist/cjs/src/generated/shopper/models/GaTier.js +2 -0
  69. package/dist/cjs/src/generated/shopper/models/LandingPageResponse.d.ts +10 -0
  70. package/dist/cjs/src/generated/shopper/models/LandingProduct.d.ts +11 -0
  71. package/dist/cjs/src/generated/shopper/models/LandingProduct.js +2 -0
  72. package/dist/cjs/src/generated/shopper/models/LandingShow.d.ts +16 -0
  73. package/dist/cjs/src/generated/shopper/models/LandingShow.js +2 -0
  74. package/dist/cjs/src/generated/shopper/models/LandingVenue.d.ts +10 -0
  75. package/dist/cjs/src/generated/shopper/models/LandingVenue.js +2 -0
  76. package/dist/cjs/src/generated/shopper/models/NextStepResponse.d.ts +7 -0
  77. package/dist/cjs/src/generated/shopper/models/NextStepResponse.js +2 -0
  78. package/dist/cjs/src/generated/shopper/models/OrderBalance.d.ts +26 -0
  79. package/dist/cjs/src/generated/shopper/models/OrderBalance.js +2 -0
  80. package/dist/cjs/src/generated/shopper/models/OrderPaymentStatus.d.ts +14 -0
  81. package/dist/cjs/src/generated/shopper/models/OrderPaymentStatus.js +2 -0
  82. package/dist/cjs/src/generated/shopper/models/PosDefaultInfoResponse.d.ts +7 -0
  83. package/dist/cjs/src/generated/shopper/models/PosDefaultInfoResponse.js +2 -0
  84. package/dist/cjs/src/generated/shopper/models/ProductAddResponse.d.ts +4 -0
  85. package/dist/cjs/src/generated/shopper/models/SeatInCart.d.ts +8 -0
  86. package/dist/cjs/src/generated/shopper/models/SetLanguageDto.d.ts +6 -0
  87. package/dist/cjs/src/generated/shopper/models/SetLanguageDto.js +2 -0
  88. package/dist/cjs/src/generated/shopper/models/ShowExtras.d.ts +14 -0
  89. package/dist/cjs/src/generated/shopper/models/ShowExtras.js +2 -0
  90. package/dist/cjs/src/generated/shopper/models/StreamDetails.d.ts +25 -0
  91. package/dist/cjs/src/generated/shopper/models/StreamDetails.js +2 -0
  92. package/dist/cjs/src/generated/shopper/models/StreamDownloadLink.d.ts +4 -0
  93. package/dist/cjs/src/generated/shopper/models/StreamDownloadLink.js +2 -0
  94. package/dist/cjs/src/generated/shopper/services/AccountService.d.ts +20 -4
  95. package/dist/cjs/src/generated/shopper/services/AccountService.js +13 -4
  96. package/dist/cjs/src/generated/shopper/services/CartService.d.ts +76 -7
  97. package/dist/cjs/src/generated/shopper/services/CartService.js +98 -7
  98. package/dist/cjs/src/generated/shopper/services/CheckoutService.d.ts +47 -14
  99. package/dist/cjs/src/generated/shopper/services/CheckoutService.js +50 -19
  100. package/dist/cjs/src/generated/shopper/services/CodeService.d.ts +38 -5
  101. package/dist/cjs/src/generated/shopper/services/CodeService.js +39 -5
  102. package/dist/cjs/src/generated/shopper/services/DonationService.d.ts +23 -2
  103. package/dist/cjs/src/generated/shopper/services/DonationService.js +29 -2
  104. package/dist/cjs/src/generated/shopper/services/EventService.d.ts +46 -4
  105. package/dist/cjs/src/generated/shopper/services/EventService.js +59 -4
  106. package/dist/cjs/src/generated/shopper/services/GiftCardService.d.ts +25 -5
  107. package/dist/cjs/src/generated/shopper/services/GiftCardService.js +16 -5
  108. package/dist/cjs/src/generated/shopper/services/OrderService.d.ts +209 -16
  109. package/dist/cjs/src/generated/shopper/services/OrderService.js +276 -16
  110. package/dist/cjs/src/generated/shopper/services/PaymentService.d.ts +15 -3
  111. package/dist/cjs/src/generated/shopper/services/PaymentService.js +10 -3
  112. package/dist/cjs/src/generated/shopper/services/ProductService.d.ts +15 -3
  113. package/dist/cjs/src/generated/shopper/services/ProductService.js +10 -3
  114. package/dist/cjs/src/generated/shopper/services/SeatService.d.ts +30 -6
  115. package/dist/cjs/src/generated/shopper/services/SeatService.js +19 -6
  116. package/dist/cjs/src/generated/shopper/services/SessionService.d.ts +37 -2
  117. package/dist/cjs/src/generated/shopper/services/SessionService.js +51 -2
  118. package/dist/cjs/src/generated/shopper/services/StripeService.d.ts +28 -0
  119. package/dist/cjs/src/generated/shopper/services/StripeService.js +54 -0
  120. package/dist/cjs/src/generated/shopper/types.d.ts +32 -1
  121. package/dist/cjs/src/scripts/build-all.js +160 -19
  122. package/dist/cjs/src/staging/index.d.ts +1 -0
  123. package/dist/esm/index.d.ts +1 -0
  124. package/dist/esm/src/definitions/shopper.d.ts +2 -0
  125. package/dist/esm/src/definitions/shopper.js +2 -0
  126. package/dist/esm/src/functions/sdkConfig.d.ts +47 -16
  127. package/dist/esm/src/functions/sdkConfig.js +61 -41
  128. package/dist/esm/src/generated/portal/core/OpenAPI.js +1 -1
  129. package/dist/esm/src/generated/portal/core/request.js +41 -7
  130. package/dist/esm/src/generated/scanner/core/OpenAPI.js +1 -1
  131. package/dist/esm/src/generated/scanner/core/request.js +41 -7
  132. package/dist/esm/src/generated/scanner/index.d.ts +1 -0
  133. package/dist/esm/src/generated/scanner/models/OrderScan.d.ts +9 -0
  134. package/dist/esm/src/generated/scanner/models/OrderScan.js +1 -0
  135. package/dist/esm/src/generated/scanner/models/TicketScan.d.ts +1 -0
  136. package/dist/esm/src/generated/scanner/services/ScanningService.d.ts +16 -0
  137. package/dist/esm/src/generated/scanner/services/ScanningService.js +28 -0
  138. package/dist/esm/src/generated/scanner/types.d.ts +1 -0
  139. package/dist/esm/src/generated/shopper/core/OpenAPI.js +1 -1
  140. package/dist/esm/src/generated/shopper/core/request.js +41 -7
  141. package/dist/esm/src/generated/shopper/index.d.ts +33 -1
  142. package/dist/esm/src/generated/shopper/index.js +1 -0
  143. package/dist/esm/src/generated/shopper/models/AnswerInput.d.ts +6 -0
  144. package/dist/esm/src/generated/shopper/models/AnswerInput.js +1 -0
  145. package/dist/esm/src/generated/shopper/models/CartAmounts.d.ts +38 -0
  146. package/dist/esm/src/generated/shopper/models/CartAmounts.js +1 -0
  147. package/dist/esm/src/generated/shopper/models/CartClearResult.d.ts +14 -0
  148. package/dist/esm/src/generated/shopper/models/CartClearResult.js +1 -0
  149. package/dist/esm/src/generated/shopper/models/CartCountsLite.d.ts +14 -0
  150. package/dist/esm/src/generated/shopper/models/CartCountsLite.js +1 -0
  151. package/dist/esm/src/generated/shopper/models/CartTotals.d.ts +22 -0
  152. package/dist/esm/src/generated/shopper/models/CartTotals.js +1 -0
  153. package/dist/esm/src/generated/shopper/models/CheckoutStep.d.ts +10 -0
  154. package/dist/esm/src/generated/shopper/models/CheckoutStep.js +1 -0
  155. package/dist/esm/src/generated/shopper/models/CheckoutStepsResponse.d.ts +7 -0
  156. package/dist/esm/src/generated/shopper/models/CheckoutStepsResponse.js +1 -0
  157. package/dist/esm/src/generated/shopper/models/CheckoutSubmitBody.d.ts +3 -13
  158. package/dist/esm/src/generated/shopper/models/CompletePaymentBody.d.ts +30 -0
  159. package/dist/esm/src/generated/shopper/models/CompletePaymentBody.js +1 -0
  160. package/dist/esm/src/generated/shopper/models/ConnectedAccountResponse.d.ts +18 -0
  161. package/dist/esm/src/generated/shopper/models/ConnectedAccountResponse.js +1 -0
  162. package/dist/esm/src/generated/shopper/models/CorrelatedCode.d.ts +14 -0
  163. package/dist/esm/src/generated/shopper/models/CorrelatedCode.js +1 -0
  164. package/dist/esm/src/generated/shopper/models/CreatePaymentIntentBody.d.ts +22 -0
  165. package/dist/esm/src/generated/shopper/models/CreatePaymentIntentBody.js +1 -0
  166. package/dist/esm/src/generated/shopper/models/CreatePaymentIntentResponse.d.ts +47 -0
  167. package/dist/esm/src/generated/shopper/models/CreatePaymentIntentResponse.js +1 -0
  168. package/dist/esm/src/generated/shopper/models/EventLegend.d.ts +12 -0
  169. package/dist/esm/src/generated/shopper/models/EventLegend.js +1 -0
  170. package/dist/esm/src/generated/shopper/models/EventLegendItem.d.ts +9 -0
  171. package/dist/esm/src/generated/shopper/models/EventLegendItem.js +1 -0
  172. package/dist/esm/src/generated/shopper/models/ExchangeAnswersBody.d.ts +4 -0
  173. package/dist/esm/src/generated/shopper/models/ExchangeAnswersBody.js +1 -0
  174. package/dist/esm/src/generated/shopper/models/ExchangeCancelSeatResponse.d.ts +7 -0
  175. package/dist/esm/src/generated/shopper/models/ExchangeCancelSeatResponse.js +1 -0
  176. package/dist/esm/src/generated/shopper/models/ExchangeShow.d.ts +12 -0
  177. package/dist/esm/src/generated/shopper/models/ExchangeShow.js +1 -0
  178. package/dist/esm/src/generated/shopper/models/ExchangeShowsResponse.d.ts +8 -0
  179. package/dist/esm/src/generated/shopper/models/ExchangeShowsResponse.js +1 -0
  180. package/dist/esm/src/generated/shopper/models/ExtendTimerDto.d.ts +6 -0
  181. package/dist/esm/src/generated/shopper/models/ExtendTimerDto.js +1 -0
  182. package/dist/esm/src/generated/shopper/models/ExtendTimerResponseDto.d.ts +10 -0
  183. package/dist/esm/src/generated/shopper/models/ExtendTimerResponseDto.js +1 -0
  184. package/dist/esm/src/generated/shopper/models/FullEventDetails.d.ts +2 -0
  185. package/dist/esm/src/generated/shopper/models/GaSelection.d.ts +24 -0
  186. package/dist/esm/src/generated/shopper/models/GaSelection.js +1 -0
  187. package/dist/esm/src/generated/shopper/models/GaTier.d.ts +27 -0
  188. package/dist/esm/src/generated/shopper/models/GaTier.js +1 -0
  189. package/dist/esm/src/generated/shopper/models/LandingPageResponse.d.ts +10 -0
  190. package/dist/esm/src/generated/shopper/models/LandingProduct.d.ts +11 -0
  191. package/dist/esm/src/generated/shopper/models/LandingProduct.js +1 -0
  192. package/dist/esm/src/generated/shopper/models/LandingShow.d.ts +16 -0
  193. package/dist/esm/src/generated/shopper/models/LandingShow.js +1 -0
  194. package/dist/esm/src/generated/shopper/models/LandingVenue.d.ts +10 -0
  195. package/dist/esm/src/generated/shopper/models/LandingVenue.js +1 -0
  196. package/dist/esm/src/generated/shopper/models/NextStepResponse.d.ts +7 -0
  197. package/dist/esm/src/generated/shopper/models/NextStepResponse.js +1 -0
  198. package/dist/esm/src/generated/shopper/models/OrderBalance.d.ts +26 -0
  199. package/dist/esm/src/generated/shopper/models/OrderBalance.js +1 -0
  200. package/dist/esm/src/generated/shopper/models/OrderPaymentStatus.d.ts +14 -0
  201. package/dist/esm/src/generated/shopper/models/OrderPaymentStatus.js +1 -0
  202. package/dist/esm/src/generated/shopper/models/PosDefaultInfoResponse.d.ts +7 -0
  203. package/dist/esm/src/generated/shopper/models/PosDefaultInfoResponse.js +1 -0
  204. package/dist/esm/src/generated/shopper/models/ProductAddResponse.d.ts +4 -0
  205. package/dist/esm/src/generated/shopper/models/SeatInCart.d.ts +8 -0
  206. package/dist/esm/src/generated/shopper/models/SetLanguageDto.d.ts +6 -0
  207. package/dist/esm/src/generated/shopper/models/SetLanguageDto.js +1 -0
  208. package/dist/esm/src/generated/shopper/models/ShowExtras.d.ts +14 -0
  209. package/dist/esm/src/generated/shopper/models/ShowExtras.js +1 -0
  210. package/dist/esm/src/generated/shopper/models/StreamDetails.d.ts +25 -0
  211. package/dist/esm/src/generated/shopper/models/StreamDetails.js +1 -0
  212. package/dist/esm/src/generated/shopper/models/StreamDownloadLink.d.ts +4 -0
  213. package/dist/esm/src/generated/shopper/models/StreamDownloadLink.js +1 -0
  214. package/dist/esm/src/generated/shopper/services/AccountService.d.ts +20 -4
  215. package/dist/esm/src/generated/shopper/services/AccountService.js +13 -4
  216. package/dist/esm/src/generated/shopper/services/CartService.d.ts +76 -7
  217. package/dist/esm/src/generated/shopper/services/CartService.js +98 -7
  218. package/dist/esm/src/generated/shopper/services/CheckoutService.d.ts +47 -14
  219. package/dist/esm/src/generated/shopper/services/CheckoutService.js +50 -19
  220. package/dist/esm/src/generated/shopper/services/CodeService.d.ts +38 -5
  221. package/dist/esm/src/generated/shopper/services/CodeService.js +39 -5
  222. package/dist/esm/src/generated/shopper/services/DonationService.d.ts +23 -2
  223. package/dist/esm/src/generated/shopper/services/DonationService.js +29 -2
  224. package/dist/esm/src/generated/shopper/services/EventService.d.ts +46 -4
  225. package/dist/esm/src/generated/shopper/services/EventService.js +59 -4
  226. package/dist/esm/src/generated/shopper/services/GiftCardService.d.ts +25 -5
  227. package/dist/esm/src/generated/shopper/services/GiftCardService.js +16 -5
  228. package/dist/esm/src/generated/shopper/services/OrderService.d.ts +209 -16
  229. package/dist/esm/src/generated/shopper/services/OrderService.js +276 -16
  230. package/dist/esm/src/generated/shopper/services/PaymentService.d.ts +15 -3
  231. package/dist/esm/src/generated/shopper/services/PaymentService.js +10 -3
  232. package/dist/esm/src/generated/shopper/services/ProductService.d.ts +15 -3
  233. package/dist/esm/src/generated/shopper/services/ProductService.js +10 -3
  234. package/dist/esm/src/generated/shopper/services/SeatService.d.ts +30 -6
  235. package/dist/esm/src/generated/shopper/services/SeatService.js +19 -6
  236. package/dist/esm/src/generated/shopper/services/SessionService.d.ts +37 -2
  237. package/dist/esm/src/generated/shopper/services/SessionService.js +51 -2
  238. package/dist/esm/src/generated/shopper/services/StripeService.d.ts +28 -0
  239. package/dist/esm/src/generated/shopper/services/StripeService.js +50 -0
  240. package/dist/esm/src/generated/shopper/types.d.ts +32 -1
  241. package/dist/esm/src/scripts/build-all.js +160 -19
  242. package/dist/esm/src/staging/index.d.ts +1 -0
  243. package/package.json +3 -2
  244. package/pnpm-workspace.yaml +2 -0
  245. package/src/custom/custom-request.txt +43 -9
  246. package/src/definitions/shopper.ts +2 -0
  247. package/src/functions/sdkConfig.ts +91 -54
  248. package/src/generated/portal/core/OpenAPI.ts +1 -1
  249. package/src/generated/portal/core/request.ts +43 -9
  250. package/src/generated/scanner/core/OpenAPI.ts +1 -1
  251. package/src/generated/scanner/core/request.ts +43 -9
  252. package/src/generated/scanner/index.ts +1 -0
  253. package/src/generated/scanner/models/OrderScan.ts +14 -0
  254. package/src/generated/scanner/models/TicketScan.ts +1 -0
  255. package/src/generated/scanner/services/ScanningService.ts +38 -0
  256. package/src/generated/scanner/types.ts +1 -0
  257. package/src/generated/shopper/core/OpenAPI.ts +1 -1
  258. package/src/generated/shopper/core/request.ts +43 -9
  259. package/src/generated/shopper/index.ts +33 -1
  260. package/src/generated/shopper/models/AnswerInput.ts +11 -0
  261. package/src/generated/shopper/models/CartAmounts.ts +43 -0
  262. package/src/generated/shopper/models/CartClearResult.ts +19 -0
  263. package/src/generated/shopper/models/CartCountsLite.ts +19 -0
  264. package/src/generated/shopper/models/CartTotals.ts +27 -0
  265. package/src/generated/shopper/models/CheckoutStep.ts +15 -0
  266. package/src/generated/shopper/models/CheckoutStepsResponse.ts +12 -0
  267. package/src/generated/shopper/models/CheckoutSubmitBody.ts +3 -13
  268. package/src/generated/shopper/models/ConnectedAccountResponse.ts +23 -0
  269. package/src/generated/shopper/models/CorrelatedCode.ts +19 -0
  270. package/src/generated/shopper/models/CreatePaymentIntentBody.ts +27 -0
  271. package/src/generated/shopper/models/CreatePaymentIntentResponse.ts +52 -0
  272. package/src/generated/shopper/models/EventLegend.ts +17 -0
  273. package/src/generated/shopper/models/EventLegendItem.ts +14 -0
  274. package/src/generated/shopper/models/ExchangeAnswersBody.ts +9 -0
  275. package/src/generated/shopper/models/ExchangeCancelSeatResponse.ts +12 -0
  276. package/src/generated/shopper/models/ExchangeShow.ts +17 -0
  277. package/src/generated/shopper/models/ExchangeShowsResponse.ts +13 -0
  278. package/src/generated/shopper/models/ExtendTimerDto.ts +11 -0
  279. package/src/generated/shopper/models/ExtendTimerResponseDto.ts +15 -0
  280. package/src/generated/shopper/models/FullEventDetails.ts +2 -0
  281. package/src/generated/shopper/models/GaSelection.ts +29 -0
  282. package/src/generated/shopper/models/GaTier.ts +32 -0
  283. package/src/generated/shopper/models/LandingPageResponse.ts +10 -0
  284. package/src/generated/shopper/models/LandingProduct.ts +16 -0
  285. package/src/generated/shopper/models/LandingShow.ts +21 -0
  286. package/src/generated/shopper/models/LandingVenue.ts +15 -0
  287. package/src/generated/shopper/models/NextStepResponse.ts +12 -0
  288. package/src/generated/shopper/models/OrderBalance.ts +31 -0
  289. package/src/generated/shopper/models/OrderPaymentStatus.ts +19 -0
  290. package/src/generated/shopper/models/PosDefaultInfoResponse.ts +12 -0
  291. package/src/generated/shopper/models/ProductAddResponse.ts +4 -0
  292. package/src/generated/shopper/models/SeatInCart.ts +8 -0
  293. package/src/generated/shopper/models/SetLanguageDto.ts +11 -0
  294. package/src/generated/shopper/models/ShowExtras.ts +19 -0
  295. package/src/generated/shopper/models/StreamDetails.ts +30 -0
  296. package/src/generated/shopper/models/StreamDownloadLink.ts +9 -0
  297. package/src/generated/shopper/services/AccountService.ts +22 -9
  298. package/src/generated/shopper/services/CartService.ts +123 -14
  299. package/src/generated/shopper/services/CheckoutService.ts +69 -29
  300. package/src/generated/shopper/services/CodeService.ts +58 -15
  301. package/src/generated/shopper/services/DonationService.ts +38 -5
  302. package/src/generated/shopper/services/EventService.ts +77 -10
  303. package/src/generated/shopper/services/GiftCardService.ts +28 -12
  304. package/src/generated/shopper/services/OrderService.ts +356 -41
  305. package/src/generated/shopper/services/PaymentService.ts +19 -9
  306. package/src/generated/shopper/services/ProductService.ts +19 -9
  307. package/src/generated/shopper/services/SeatService.ts +38 -19
  308. package/src/generated/shopper/services/SessionService.ts +65 -5
  309. package/src/generated/shopper/services/StripeService.ts +64 -0
  310. package/src/generated/shopper/types.ts +32 -1
  311. package/src/scripts/build-all.ts +211 -26
  312. package/src/generated/shopper/models/SaveNonceBody.ts +0 -15
@@ -73,9 +73,80 @@ fs_1.default.writeFileSync(portalRequestPath, customRequestContent);
73
73
  console.log('✅ Replaced portal/core/request.ts with custom-request.txt');
74
74
  fs_1.default.writeFileSync(scannerRequestPath, customRequestContent);
75
75
  console.log('✅ Replaced scanner/core/request.ts with custom-request.txt');
76
- // Strip credential params (shopperguid/accountid/apikey) from all generated service methods.
77
- // DRT.init() injects these globally via OpenAPI.HEADERS, so callers never need to pass them.
78
- console.log('⚙️ Stripping credential params from generated services...');
76
+ // Strip/rework credential params (shopperguid/accountid/apikey) from all generated service methods.
77
+ //
78
+ // Portal and scanner: DRT.init() injects these globally via OpenAPI.HEADERS,
79
+ // so callers never need to pass them — params are removed entirely.
80
+ //
81
+ // Shopper: the three params collapse into a single optional trailing
82
+ // `context?: { shopperGuid?: string; accountId?: string }` argument, resolved
83
+ // per-call via resolveShopperHeaders(). This is what lets DRT.init({
84
+ // shopperScope: 'per-request' }) serve many shoppers/accounts from one SDK
85
+ // instance — see src/functions/sdkConfig.ts.
86
+ console.log('⚙️ Stripping/reworking credential params in generated services...');
87
+ // Finds each `public static <name>(<params>): <returnType> { <body> }` method
88
+ // by tracking paren/brace nesting (a single regex can't express "matching
89
+ // close paren/brace" when the body itself contains nested {}/() such as
90
+ // `headers: {...}` or `path: {...}`). For any method whose body calls
91
+ // resolveShopperHeaders(context) but whose parameter list doesn't already
92
+ // declare a `context` param, appends `context?: { shopperGuid?: string;
93
+ // accountId?: string }` as the last parameter.
94
+ function patchMissingContextParam(src) {
95
+ const methodStart = /public static \w+\(/g;
96
+ let result = '';
97
+ let cursor = 0;
98
+ let match;
99
+ while ((match = methodStart.exec(src))) {
100
+ const parenOpen = match.index + match[0].length - 1;
101
+ // Walk from the opening '(' to its matching ')'.
102
+ let depth = 0;
103
+ let i = parenOpen;
104
+ for (; i < src.length; i++) {
105
+ if (src[i] === '(')
106
+ depth++;
107
+ else if (src[i] === ')') {
108
+ depth--;
109
+ if (depth === 0)
110
+ break;
111
+ }
112
+ }
113
+ const parenClose = i;
114
+ // Walk forward to the method's opening '{', then to its matching '}'.
115
+ const braceOpen = src.indexOf('{', parenClose);
116
+ depth = 0;
117
+ let j = braceOpen;
118
+ for (; j < src.length; j++) {
119
+ if (src[j] === '{')
120
+ depth++;
121
+ else if (src[j] === '}') {
122
+ depth--;
123
+ if (depth === 0)
124
+ break;
125
+ }
126
+ }
127
+ const braceClose = j;
128
+ const params = src.slice(parenOpen + 1, parenClose);
129
+ const body = src.slice(braceOpen + 1, braceClose);
130
+ if (/resolveShopperHeaders\(context\)/.test(body) && !/context\?:/.test(params)) {
131
+ // Indentation of an existing parameter line (the new param
132
+ // matches it); indentation of the ')' line (preserved as-is).
133
+ const paramIndentMatch = /\r?\n([^\S\r\n]+)\S/.exec(params);
134
+ const paramIndent = paramIndentMatch ? paramIndentMatch[1] : ' ';
135
+ const closeIndentMatch = /\r?\n([^\S\r\n]*)$/.exec(params);
136
+ const closeIndent = closeIndentMatch ? closeIndentMatch[1] : ' ';
137
+ const trimmedParams = params.replace(/[,\s]*$/, '');
138
+ const sep = trimmedParams.trim() ? ',\r\n' : '\r\n';
139
+ const newParams = trimmedParams +
140
+ sep +
141
+ `${paramIndent}context?: { shopperGuid?: string; accountId?: string },\r\n${closeIndent}`;
142
+ result += src.slice(cursor, parenOpen + 1) + newParams;
143
+ cursor = parenClose;
144
+ }
145
+ methodStart.lastIndex = braceClose;
146
+ }
147
+ result += src.slice(cursor);
148
+ return result;
149
+ }
79
150
  function walkServices(dir) {
80
151
  const results = [];
81
152
  for (const entry of fs_1.default.readdirSync(dir, { withFileTypes: true })) {
@@ -90,28 +161,98 @@ function walkServices(dir) {
90
161
  return results;
91
162
  }
92
163
  const serviceFiles = walkServices(GENERATED_BASE);
164
+ const shopperServicesDir = path_1.default.join(GENERATED_BASE, 'shopper', 'services');
93
165
  for (const file of serviceFiles) {
166
+ const isShopperService = file.startsWith(shopperServicesDir);
94
167
  let src = fs_1.default.readFileSync(file, 'utf-8');
95
- let patched = src
96
- // Remove param lines from function signatures
97
- .replace(/\n\s*shopperguid: string(?:\s*\|\s*undefined)?\s*(?:=\s*undefined)?,/g, '')
98
- .replace(/\n\s*accountid: string(?:\s*\|\s*undefined)?\s*(?:=\s*undefined)?,/g, '')
99
- .replace(/\n\s*apikey: string(?:\s*\|\s*undefined)?\s*(?:=\s*undefined)?,/g, '')
100
- // Remove @param jsdoc lines
101
- .replace(/\n\s*\* @param shopperguid[^\n]*/g, '')
102
- .replace(/\n\s*\* @param accountid[^\n]*/g, '')
103
- .replace(/\n\s*\* @param apikey[^\n]*/g, '')
104
- // Remove header entries inside __request
105
- .replace(/\n\s*'shopperguid': shopperguid,/g, '')
106
- .replace(/\n\s*'accountid': accountid,/g, '')
107
- .replace(/\n\s*'apikey': apikey,/g, '')
108
- // Remove empty headers: {} blocks left behind
109
- .replace(/\n\s*headers: \{\s*\},/g, '');
168
+ let patched;
169
+ if (isShopperService) {
170
+ patched = src
171
+ // Fold the shopperguid param into an optional context param
172
+ .replace(/\n(\s*)shopperguid: string(?:\s*\|\s*undefined)?\s*(?:=\s*undefined)?,/g, '\n$1context?: { shopperGuid?: string; accountId?: string },')
173
+ // accountid/apikey are resolved from context/DRT.init() instead
174
+ .replace(/\n\s*accountid: string(?:\s*\|\s*undefined)?\s*(?:=\s*undefined)?,/g, '')
175
+ .replace(/\n\s*apikey: string(?:\s*\|\s*undefined)?\s*(?:=\s*undefined)?,/g, '')
176
+ // Rework @param jsdoc lines
177
+ .replace(/\n(\s*)\* @param shopperguid[^\n]*/g, '\n$1* @param context Optional per-call { shopperGuid, accountId } override. Falls back to the values passed to DRT.init().')
178
+ .replace(/\n\s*\* @param accountid[^\n]*/g, '')
179
+ .replace(/\n\s*\* @param apikey[^\n]*/g, '')
180
+ // Replace the credential header block with a resolver call. A few
181
+ // endpoints (e.g. DonationService.postDonation's ipAddress header)
182
+ // have an additional non-credential header — merge into those
183
+ // instead of emitting a second "headers:" key.
184
+ .replace(/\n\s*'shopperguid': shopperguid,/g, '')
185
+ .replace(/\n\s*'accountid': accountid,/g, '')
186
+ .replace(/\n\s*'apikey': apikey,/g, '')
187
+ .replace(/headers: \{\s*\},/g, 'headers: resolveShopperHeaders(context),')
188
+ .replace(/headers: \{\n(\s*)/g, 'headers: {\n$1...resolveShopperHeaders(context),\n$1')
189
+ // TS1016: a required parameter cannot follow an optional one.
190
+ // When context? was injected in place of shopperguid (which appeared
191
+ // before requestBody in the original spec), it ends up before a
192
+ // required requestBody param. Move context? to after requestBody.
193
+ // Note: blank "lines" between params may be orphaned \r chars (CRLF
194
+ // files lose the \n when accountid/apikey lines are stripped) — use
195
+ // [\r\n]+ to match any combination of CR/LF between the two params.
196
+ .replace(/\n([^\S\n]+)context\?:\s*\{\s*shopperGuid\?:\s*string;\s*accountId\?:\s*string\s*\},[\r\n]+[^\S\n]+(requestBody:\s+[^?,\r\n][^,\r\n]*),/g, (_, indent, rbPart) => `\n${indent}${rbPart},\n${indent}context?: { shopperGuid?: string; accountId?: string },`);
197
+ // Some endpoints (e.g. Stripe's integrator-only calls) declare no
198
+ // shopperguid param, so the replace above never injects a `context`
199
+ // parameter into their signature — yet they still call
200
+ // resolveShopperHeaders(context) via the headers: {} replacement,
201
+ // leaving a dangling reference to an undeclared `context`. Add the
202
+ // param to any method signature whose body calls
203
+ // resolveShopperHeaders(context) but doesn't already declare one.
204
+ // Brace/paren nesting inside method bodies (headers: {...}, path:
205
+ // {...}, etc.) makes this unsafe to express as a single regex, so
206
+ // methods are located by tracking paren depth from `public static`
207
+ // through the matching close-paren of the parameter list, then brace
208
+ // depth from the following `{` through the matching method-closing
209
+ // `}`.
210
+ patched = patchMissingContextParam(patched);
211
+ if (patched !== src) {
212
+ patched = patched.replace("import { request as __request } from '../core/request';", "import { request as __request } from '../core/request';\nimport { resolveShopperHeaders } from '../../../functions/sdkConfig';");
213
+ }
214
+ }
215
+ else {
216
+ patched = src
217
+ // Remove param lines from function signatures
218
+ .replace(/\n\s*shopperguid: string(?:\s*\|\s*undefined)?\s*(?:=\s*undefined)?,/g, '')
219
+ .replace(/\n\s*accountid: string(?:\s*\|\s*undefined)?\s*(?:=\s*undefined)?,/g, '')
220
+ .replace(/\n\s*apikey: string(?:\s*\|\s*undefined)?\s*(?:=\s*undefined)?,/g, '')
221
+ // Remove @param jsdoc lines
222
+ .replace(/\n\s*\* @param shopperguid[^\n]*/g, '')
223
+ .replace(/\n\s*\* @param accountid[^\n]*/g, '')
224
+ .replace(/\n\s*\* @param apikey[^\n]*/g, '')
225
+ // Remove header entries inside __request
226
+ .replace(/\n\s*'shopperguid': shopperguid,/g, '')
227
+ .replace(/\n\s*'accountid': accountid,/g, '')
228
+ .replace(/\n\s*'apikey': apikey,/g, '')
229
+ // Remove empty headers: {} blocks left behind
230
+ .replace(/\n\s*headers: \{\s*\},/g, '');
231
+ }
110
232
  if (patched !== src) {
111
233
  fs_1.default.writeFileSync(file, patched);
112
234
  }
113
235
  }
114
- console.log(`✅ Stripped credentials from ${serviceFiles.length} service files`);
236
+ console.log(`✅ Stripped/reworked credentials in ${serviceFiles.length} service files`);
237
+ // --- Patch portal ClientToolsTicketingLinkService to return Blob for generateFlyer
238
+ // The AdminPortal Swagger declares this as binary/pdf but openapi-typescript-codegen
239
+ // may still emit a non-Blob return type depending on the spec version. Patch as a safeguard.
240
+ const flyerServicePath = path_1.default.resolve('src/generated/portal/services/ClientToolsTicketingLinkService.ts');
241
+ if (fs_1.default.existsSync(flyerServicePath)) {
242
+ let flyerSrc = fs_1.default.readFileSync(flyerServicePath, 'utf-8');
243
+ // Remove the SuccessResponse import if present (no longer needed for this file if it was only used here)
244
+ const patchedFlyerSrc = flyerSrc
245
+ .replace(/import type \{ SuccessResponse \} from '\.\.\/models\/SuccessResponse';\n/g, '')
246
+ .replace(/\* @returns SuccessResponse [^\n]*\n(\s*\* @throws)/, '* @returns binary Returns the generated PDF Flyer as a blob\n$1')
247
+ .replace(/\): CancelablePromise<SuccessResponse> \{(\s*return __request\(OpenAPI, \{[\s\S]*?url: '\/client-tools\/ticketing-link\/flyer')/, '): CancelablePromise<Blob> {$1');
248
+ if (patchedFlyerSrc !== flyerSrc) {
249
+ fs_1.default.writeFileSync(flyerServicePath, patchedFlyerSrc);
250
+ console.log('✅ Patched generateFlyer return type to Blob');
251
+ }
252
+ else {
253
+ console.log('✅ generateFlyer already returns Blob (no patch needed)');
254
+ }
255
+ }
115
256
  // --- Generate index.ts
116
257
  console.log(`🧩 Generating DRT index...`);
117
258
  const lines = [];
@@ -31,6 +31,7 @@ export declare const DRT: {
31
31
  product: typeof import("../generated/shopper").ProductService;
32
32
  seat: typeof import("../generated/shopper").SeatService;
33
33
  session: typeof import("../generated/shopper").SessionService;
34
+ stripe: typeof import("../generated/shopper").StripeService;
34
35
  };
35
36
  scanner: {
36
37
  database: typeof import("../generated/scanner").DatabaseService;
@@ -16,6 +16,7 @@ export declare const DRT: {
16
16
  product: typeof import("./src/generated/shopper").ProductService;
17
17
  seat: typeof import("./src/generated/shopper").SeatService;
18
18
  session: typeof import("./src/generated/shopper").SessionService;
19
+ stripe: typeof import("./src/generated/shopper").StripeService;
19
20
  };
20
21
  scanner: {
21
22
  database: typeof import("./src/generated/scanner").DatabaseService;
@@ -10,6 +10,7 @@ import { PaymentService } from "../generated/shopper";
10
10
  import { ProductService } from "../generated/shopper";
11
11
  import { SeatService } from "../generated/shopper";
12
12
  import { SessionService } from "../generated/shopper";
13
+ import { StripeService } from "../generated/shopper";
13
14
  export declare const shopper: {
14
15
  account: typeof AccountService;
15
16
  cart: typeof CartService;
@@ -23,5 +24,6 @@ export declare const shopper: {
23
24
  product: typeof ProductService;
24
25
  seat: typeof SeatService;
25
26
  session: typeof SessionService;
27
+ stripe: typeof StripeService;
26
28
  };
27
29
  export * as ShopperTypes from "../generated/shopper/types";
@@ -11,6 +11,7 @@ import { PaymentService } from "../generated/shopper/index.js";
11
11
  import { ProductService } from "../generated/shopper/index.js";
12
12
  import { SeatService } from "../generated/shopper/index.js";
13
13
  import { SessionService } from "../generated/shopper/index.js";
14
+ import { StripeService } from "../generated/shopper/index.js";
14
15
  export const shopper = {
15
16
  account: AccountService,
16
17
  cart: CartService,
@@ -24,6 +25,7 @@ export const shopper = {
24
25
  product: ProductService,
25
26
  seat: SeatService,
26
27
  session: SessionService,
28
+ stripe: StripeService,
27
29
  };
28
30
  // Re-export all types as a namespace
29
31
  export * as ShopperTypes from "../generated/shopper/types.js";
@@ -1,7 +1,25 @@
1
+ export type ShopperScope = 'singleton' | 'per-request';
1
2
  export interface SDKConfig {
2
- shopperGuid: string;
3
- accountId: string;
4
3
  apiKey: string;
4
+ /**
5
+ * Required when shopperScope is 'singleton' (the default). Optional when
6
+ * shopperScope is 'per-request' — in that mode these act only as a fallback
7
+ * default, and every shopper call may override them via a trailing
8
+ * `{ shopperGuid, accountId }` context argument.
9
+ */
10
+ shopperGuid?: string;
11
+ accountId?: string;
12
+ /**
13
+ * 'singleton' (default): shopperGuid/accountId are fixed for the lifetime of
14
+ * the process, exactly like today.
15
+ *
16
+ * 'per-request': shopperGuid/accountId become optional at init() time, and
17
+ * every shopper service method accepts an optional trailing context argument
18
+ * ({ shopperGuid, accountId }) so a single SDK instance can serve requests
19
+ * for many shoppers/accounts concurrently — the intended shape for a backend
20
+ * that proxies calls on behalf of arbitrary shoppers.
21
+ */
22
+ shopperScope?: ShopperScope;
5
23
  }
6
24
  /**
7
25
  * Initialize the DRT SDK with credentials.
@@ -14,7 +32,7 @@ export interface SDKConfig {
14
32
  * ```javascript
15
33
  * import { DRT } from '@drttix/drt-sdk';
16
34
  *
17
- * // Initialize once
35
+ * // Initialize once (default: singleton shopper scope)
18
36
  * DRT.init({
19
37
  * shopperGuid: 'your-shopper-guid',
20
38
  * accountId: 'your-account-id',
@@ -24,6 +42,18 @@ export interface SDKConfig {
24
42
  * // Now make calls without passing credentials
25
43
  * const theme = await DRT.shopper.account.getTheme();
26
44
  * ```
45
+ *
46
+ * @example
47
+ * ```javascript
48
+ * // Backend serving many shoppers/accounts from a single SDK instance
49
+ * DRT.init({ apiKey: 'your-api-key', shopperScope: 'per-request' });
50
+ *
51
+ * // Pass shopperGuid/accountId per call instead
52
+ * await DRT.shopper.product.addProduct(body, {
53
+ * shopperGuid: req.shopperGuid,
54
+ * accountId: req.accountId,
55
+ * });
56
+ * ```
27
57
  */
28
58
  export declare function init(config: SDKConfig): void;
29
59
  /**
@@ -35,21 +65,22 @@ export declare function isReady(): boolean;
35
65
  */
36
66
  export declare function getConfig(): SDKConfig | null;
37
67
  /**
38
- * Reset the SDK configuration.
68
+ * Get the shopperScope the SDK was initialized with ('singleton' if not yet initialized).
39
69
  */
40
- export declare function reset(): void;
70
+ export declare function getShopperScope(): ShopperScope;
41
71
  /**
42
- * Get credentials from config, throwing if not initialized.
43
- * Used internally by wrapped services.
72
+ * Reset the SDK configuration.
44
73
  */
45
- export declare function getCredentials(): {
46
- shopperGuid: string;
47
- accountId: string;
48
- apiKey: string;
49
- };
74
+ export declare function reset(): void;
50
75
  /**
51
- * Creates a proxy that auto-injects credentials for service methods.
52
- * Methods that take (shopperguid, accountid, apikey, ...rest) as first 3 params
53
- * will have those auto-filled from the SDK config.
76
+ * Resolves the shopperguid/accountid/apikey headers for a single shopper API call.
77
+ *
78
+ * Used internally by every generated shopper service method. `context`, when
79
+ * provided, overrides the shopperGuid/accountId set at DRT.init() — this is
80
+ * what makes shopperScope: 'per-request' work. apiKey always comes from
81
+ * DRT.init(), since it identifies the calling backend, not the shopper.
54
82
  */
55
- export declare function createAutoCredentialsProxy<T extends object>(service: T): T;
83
+ export declare function resolveShopperHeaders(context?: {
84
+ shopperGuid?: string;
85
+ accountId?: string;
86
+ }): Record<string, string>;
@@ -4,6 +4,7 @@ import { OpenAPI as ScannerAPI } from '../generated/scanner/core/OpenAPI.js';
4
4
  import { OpenAPI as PortalAPI } from '../generated/portal/core/OpenAPI.js';
5
5
  let isInitialized = false;
6
6
  let currentConfig = null;
7
+ let currentShopperScope = 'singleton';
7
8
  /**
8
9
  * Initialize the DRT SDK with credentials.
9
10
  * Once initialized, these credentials will be automatically included
@@ -15,7 +16,7 @@ let currentConfig = null;
15
16
  * ```javascript
16
17
  * import { DRT } from '@drttix/drt-sdk';
17
18
  *
18
- * // Initialize once
19
+ * // Initialize once (default: singleton shopper scope)
19
20
  * DRT.init({
20
21
  * shopperGuid: 'your-shopper-guid',
21
22
  * accountId: 'your-account-id',
@@ -25,21 +26,44 @@ let currentConfig = null;
25
26
  * // Now make calls without passing credentials
26
27
  * const theme = await DRT.shopper.account.getTheme();
27
28
  * ```
29
+ *
30
+ * @example
31
+ * ```javascript
32
+ * // Backend serving many shoppers/accounts from a single SDK instance
33
+ * DRT.init({ apiKey: 'your-api-key', shopperScope: 'per-request' });
34
+ *
35
+ * // Pass shopperGuid/accountId per call instead
36
+ * await DRT.shopper.product.addProduct(body, {
37
+ * shopperGuid: req.shopperGuid,
38
+ * accountId: req.accountId,
39
+ * });
40
+ * ```
28
41
  */
29
42
  export function init(config) {
30
- if (!config.shopperGuid || !config.accountId || !config.apiKey) {
31
- throw new Error('DRT SDK init requires shopperGuid, accountId, and apiKey');
43
+ var _a;
44
+ if (!config.apiKey) {
45
+ throw new Error('DRT SDK init requires apiKey');
46
+ }
47
+ const shopperScope = (_a = config.shopperScope) !== null && _a !== void 0 ? _a : 'singleton';
48
+ if (shopperScope === 'singleton' && (!config.shopperGuid || !config.accountId)) {
49
+ throw new Error('DRT SDK init requires shopperGuid and accountId (or pass shopperScope: "per-request" to supply them per shopper call instead)');
32
50
  }
33
51
  currentConfig = config;
34
- const headers = {
35
- shopperguid: config.shopperGuid,
36
- accountid: config.accountId,
37
- apikey: config.apiKey,
38
- };
39
- // Set headers on all API clients
40
- ShopperAPI.HEADERS = headers;
41
- ScannerAPI.HEADERS = headers;
42
- PortalAPI.HEADERS = headers;
52
+ currentShopperScope = shopperScope;
53
+ // Portal and scanner are always singleton-scoped: one fixed set of
54
+ // credentials for every call, applied globally via OpenAPI.HEADERS.
55
+ const sharedHeaders = { apikey: config.apiKey };
56
+ if (config.shopperGuid && config.accountId) {
57
+ sharedHeaders.shopperguid = config.shopperGuid;
58
+ sharedHeaders.accountid = config.accountId;
59
+ }
60
+ ScannerAPI.HEADERS = sharedHeaders;
61
+ PortalAPI.HEADERS = sharedHeaders;
62
+ // Shopper credentials are resolved per-call by resolveShopperHeaders()
63
+ // (see generated shopper services), so no global header is set here —
64
+ // that's what lets shopperScope: 'per-request' override per call without
65
+ // a global value silently taking precedence.
66
+ ShopperAPI.HEADERS = undefined;
43
67
  isInitialized = true;
44
68
  }
45
69
  /**
@@ -54,50 +78,46 @@ export function isReady() {
54
78
  export function getConfig() {
55
79
  return currentConfig;
56
80
  }
81
+ /**
82
+ * Get the shopperScope the SDK was initialized with ('singleton' if not yet initialized).
83
+ */
84
+ export function getShopperScope() {
85
+ return currentShopperScope;
86
+ }
57
87
  /**
58
88
  * Reset the SDK configuration.
59
89
  */
60
90
  export function reset() {
61
91
  currentConfig = null;
92
+ currentShopperScope = 'singleton';
62
93
  isInitialized = false;
63
94
  ShopperAPI.HEADERS = undefined;
64
95
  ScannerAPI.HEADERS = undefined;
65
96
  PortalAPI.HEADERS = undefined;
66
97
  }
67
98
  /**
68
- * Get credentials from config, throwing if not initialized.
69
- * Used internally by wrapped services.
99
+ * Resolves the shopperguid/accountid/apikey headers for a single shopper API call.
100
+ *
101
+ * Used internally by every generated shopper service method. `context`, when
102
+ * provided, overrides the shopperGuid/accountId set at DRT.init() — this is
103
+ * what makes shopperScope: 'per-request' work. apiKey always comes from
104
+ * DRT.init(), since it identifies the calling backend, not the shopper.
70
105
  */
71
- export function getCredentials() {
106
+ export function resolveShopperHeaders(context) {
107
+ var _a, _b;
72
108
  if (!currentConfig) {
73
109
  throw new Error('DRT SDK not initialized. Call DRT.init() first.');
74
110
  }
111
+ const shopperGuid = (_a = context === null || context === void 0 ? void 0 : context.shopperGuid) !== null && _a !== void 0 ? _a : currentConfig.shopperGuid;
112
+ const accountId = (_b = context === null || context === void 0 ? void 0 : context.accountId) !== null && _b !== void 0 ? _b : currentConfig.accountId;
113
+ if (!shopperGuid || !accountId) {
114
+ throw new Error(currentShopperScope === 'per-request'
115
+ ? 'No shopperGuid/accountId available for this call. DRT SDK was initialized with shopperScope: "per-request" without defaults — pass { shopperGuid, accountId } as the last argument to this call.'
116
+ : 'DRT SDK not initialized with shopperGuid/accountId. Call DRT.init() first.');
117
+ }
75
118
  return {
76
- shopperGuid: currentConfig.shopperGuid,
77
- accountId: currentConfig.accountId,
78
- apiKey: currentConfig.apiKey,
119
+ shopperguid: shopperGuid,
120
+ accountid: accountId,
121
+ apikey: currentConfig.apiKey,
79
122
  };
80
123
  }
81
- /**
82
- * Creates a proxy that auto-injects credentials for service methods.
83
- * Methods that take (shopperguid, accountid, apikey, ...rest) as first 3 params
84
- * will have those auto-filled from the SDK config.
85
- */
86
- export function createAutoCredentialsProxy(service) {
87
- return new Proxy(service, {
88
- get(target, prop) {
89
- const value = target[prop];
90
- if (typeof value === 'function') {
91
- return (...args) => {
92
- // If SDK is initialized, prepend credentials
93
- if (isInitialized && currentConfig) {
94
- return value.call(target, currentConfig.shopperGuid, currentConfig.accountId, currentConfig.apiKey, ...args);
95
- }
96
- // Otherwise call with original args
97
- return value.apply(target, args);
98
- };
99
- }
100
- return value;
101
- },
102
- });
103
- }
@@ -1,6 +1,6 @@
1
1
  export const OpenAPI = {
2
2
  BASE: '',
3
- VERSION: '20260623.1',
3
+ VERSION: '20260629.2',
4
4
  WITH_CREDENTIALS: false,
5
5
  CREDENTIALS: 'include',
6
6
  TOKEN: undefined,
@@ -194,13 +194,16 @@ export const getResponseBody = async (response) => {
194
194
  const contentType = response.headers.get("Content-Type");
195
195
  if (contentType) {
196
196
  const jsonTypes = ["application/json", "application/problem+json"];
197
- const isJSON = jsonTypes.some((type) => contentType.toLowerCase().startsWith(type));
197
+ const lc = contentType.toLowerCase();
198
+ const isJSON = jsonTypes.some((type) => lc.startsWith(type));
198
199
  if (isJSON) {
199
200
  return await response.json();
200
201
  }
201
- else {
202
- return await response.text();
202
+ // Return Blob for PDF / binary responses
203
+ if (lc.startsWith('application/pdf') || lc.startsWith('application/octet-stream')) {
204
+ return await response.blob();
203
205
  }
206
+ return await response.text();
204
207
  }
205
208
  }
206
209
  catch (error) {
@@ -230,7 +233,36 @@ export const catchErrorCodes = (options, result) => {
230
233
  throw new ApiError(options, result, `Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}`);
231
234
  }
232
235
  };
233
- let globalCookieHeader;
236
+ // Cookies are cached per request "identity" rather than in one shared slot.
237
+ // Shopper calls carry shopperguid/accountid in options.headers (resolved
238
+ // per-call by resolveShopperHeaders()), so each shopper gets its own cookie
239
+ // jar instead of one shopper's session leaking into another's requests when
240
+ // a single SDK instance serves many shoppers concurrently (shopperScope:
241
+ // 'per-request'). Portal/scanner calls carry no such header and fall back to
242
+ // the single default slot, matching prior behavior.
243
+ const DEFAULT_COOKIE_KEY = "__default__";
244
+ const MAX_COOKIE_ENTRIES = 10000;
245
+ const cookiesByKey = new Map();
246
+ const getCookieKey = (options) => {
247
+ var _a, _b;
248
+ const shopperguid = (_a = options.headers) === null || _a === void 0 ? void 0 : _a["shopperguid"];
249
+ const accountid = (_b = options.headers) === null || _b === void 0 ? void 0 : _b["accountid"];
250
+ if (isStringWithValue(shopperguid)) {
251
+ return `${shopperguid}:${isStringWithValue(accountid) ? accountid : ""}`;
252
+ }
253
+ return DEFAULT_COOKIE_KEY;
254
+ };
255
+ const storeCookie = (key, value) => {
256
+ if (!cookiesByKey.has(key) && cookiesByKey.size >= MAX_COOKIE_ENTRIES) {
257
+ // Evict the oldest entry (Map preserves insertion order) to bound memory
258
+ // on a long-running, many-shopper backend process.
259
+ const oldestKey = cookiesByKey.keys().next().value;
260
+ if (oldestKey !== undefined) {
261
+ cookiesByKey.delete(oldestKey);
262
+ }
263
+ }
264
+ cookiesByKey.set(key, value);
265
+ };
234
266
  /**
235
267
  * Wraps sendRequest to capture cookies on login
236
268
  * and attach cookies on other requests
@@ -241,6 +273,7 @@ export const request = (config, options) => {
241
273
  const url = getUrl(config, options);
242
274
  const formData = getFormData(options);
243
275
  const body = getRequestBody(options);
276
+ const cookieKey = getCookieKey(options);
244
277
  // Before making headers, possibly attach cookie if we have it
245
278
  const baseHeaders = await getHeaders(config, options);
246
279
  // We will build combined headers
@@ -248,9 +281,10 @@ export const request = (config, options) => {
248
281
  baseHeaders.forEach((value, key) => {
249
282
  headerObj[key] = value;
250
283
  });
251
- if (globalCookieHeader) {
284
+ const storedCookie = cookiesByKey.get(cookieKey);
285
+ if (storedCookie) {
252
286
  // Attach stored cookie
253
- headerObj["Cookie"] = globalCookieHeader;
287
+ headerObj["Cookie"] = storedCookie;
254
288
  }
255
289
  const headers = new Headers(headerObj);
256
290
  if (!onCancel.isCancelled) {
@@ -259,7 +293,7 @@ export const request = (config, options) => {
259
293
  const setCookie = response.headers.get("set-cookie");
260
294
  if (setCookie) {
261
295
  // Overwrite or append as needed
262
- globalCookieHeader = setCookie;
296
+ storeCookie(cookieKey, setCookie);
263
297
  }
264
298
  const responseBody = await getResponseBody(response);
265
299
  const responseHeader = getResponseHeader(response, options.responseHeader);
@@ -1,6 +1,6 @@
1
1
  export const OpenAPI = {
2
2
  BASE: 'https://api.drttix.com/scanner-v3',
3
- VERSION: '20260307.1',
3
+ VERSION: '20260713.1',
4
4
  WITH_CREDENTIALS: false,
5
5
  CREDENTIALS: 'include',
6
6
  TOKEN: undefined,