@drttix/drt-sdk 1.3.4 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -4
- package/azure-pipelines.yml +2 -0
- package/dist/cjs/src/functions/sdkConfig.d.ts +47 -16
- package/dist/cjs/src/functions/sdkConfig.js +63 -43
- package/dist/cjs/src/generated/portal/core/OpenAPI.js +1 -1
- package/dist/cjs/src/generated/portal/core/request.js +41 -7
- package/dist/cjs/src/generated/scanner/core/OpenAPI.js +1 -1
- package/dist/cjs/src/generated/scanner/core/request.js +41 -7
- package/dist/cjs/src/generated/scanner/index.d.ts +1 -0
- package/dist/cjs/src/generated/scanner/models/OrderScan.d.ts +9 -0
- package/dist/cjs/src/generated/scanner/models/OrderScan.js +2 -0
- package/dist/cjs/src/generated/scanner/models/TicketScan.d.ts +1 -0
- package/dist/cjs/src/generated/scanner/services/ScanningService.d.ts +16 -0
- package/dist/cjs/src/generated/scanner/services/ScanningService.js +28 -0
- package/dist/cjs/src/generated/scanner/types.d.ts +1 -0
- package/dist/cjs/src/generated/shopper/core/OpenAPI.js +1 -1
- package/dist/cjs/src/generated/shopper/core/request.js +41 -7
- package/dist/cjs/src/generated/shopper/index.d.ts +29 -2
- package/dist/cjs/src/generated/shopper/models/AnswerInput.d.ts +6 -0
- package/dist/cjs/src/generated/shopper/models/AnswerInput.js +2 -0
- package/dist/cjs/src/generated/shopper/models/CartAmounts.d.ts +38 -0
- package/dist/cjs/src/generated/shopper/models/CartAmounts.js +2 -0
- package/dist/cjs/src/generated/shopper/models/CartClearResult.d.ts +14 -0
- package/dist/cjs/src/generated/shopper/models/CartClearResult.js +2 -0
- package/dist/cjs/src/generated/shopper/models/CartCountsLite.d.ts +14 -0
- package/dist/cjs/src/generated/shopper/models/CartCountsLite.js +2 -0
- package/dist/cjs/src/generated/shopper/models/CartTotals.d.ts +22 -0
- package/dist/cjs/src/generated/shopper/models/CartTotals.js +2 -0
- package/dist/cjs/src/generated/shopper/models/CheckoutStep.d.ts +10 -0
- package/dist/cjs/src/generated/shopper/models/CheckoutStep.js +2 -0
- package/dist/cjs/src/generated/shopper/models/CheckoutStepsResponse.d.ts +7 -0
- package/dist/cjs/src/generated/shopper/models/CheckoutStepsResponse.js +2 -0
- package/dist/cjs/src/generated/shopper/models/CheckoutSubmitBody.d.ts +3 -13
- package/dist/cjs/src/generated/shopper/models/CorrelatedCode.d.ts +14 -0
- package/dist/cjs/src/generated/shopper/models/CorrelatedCode.js +2 -0
- package/dist/cjs/src/generated/shopper/models/EventLegend.d.ts +12 -0
- package/dist/cjs/src/generated/shopper/models/EventLegend.js +2 -0
- package/dist/cjs/src/generated/shopper/models/EventLegendItem.d.ts +9 -0
- package/dist/cjs/src/generated/shopper/models/EventLegendItem.js +2 -0
- package/dist/cjs/src/generated/shopper/models/ExchangeAnswersBody.d.ts +4 -0
- package/dist/cjs/src/generated/shopper/models/ExchangeAnswersBody.js +2 -0
- package/dist/cjs/src/generated/shopper/models/ExchangeCancelSeatResponse.d.ts +7 -0
- package/dist/cjs/src/generated/shopper/models/ExchangeCancelSeatResponse.js +2 -0
- package/dist/cjs/src/generated/shopper/models/ExchangeShow.d.ts +12 -0
- package/dist/cjs/src/generated/shopper/models/ExchangeShow.js +2 -0
- package/dist/cjs/src/generated/shopper/models/ExchangeShowsResponse.d.ts +8 -0
- package/dist/cjs/src/generated/shopper/models/ExchangeShowsResponse.js +2 -0
- package/dist/cjs/src/generated/shopper/models/ExtendTimerDto.d.ts +6 -0
- package/dist/cjs/src/generated/shopper/models/ExtendTimerDto.js +2 -0
- package/dist/cjs/src/generated/shopper/models/ExtendTimerResponseDto.d.ts +10 -0
- package/dist/cjs/src/generated/shopper/models/ExtendTimerResponseDto.js +2 -0
- package/dist/cjs/src/generated/shopper/models/FullEventDetails.d.ts +2 -2
- package/dist/cjs/src/generated/shopper/models/GaSelection.d.ts +24 -0
- package/dist/cjs/src/generated/shopper/models/GaSelection.js +2 -0
- package/dist/cjs/src/generated/shopper/models/GaTier.d.ts +27 -0
- package/dist/cjs/src/generated/shopper/models/GaTier.js +2 -0
- package/dist/cjs/src/generated/shopper/models/LandingPageResponse.d.ts +10 -0
- package/dist/cjs/src/generated/shopper/models/LandingProduct.d.ts +11 -0
- package/dist/cjs/src/generated/shopper/models/LandingProduct.js +2 -0
- package/dist/cjs/src/generated/shopper/models/LandingShow.d.ts +16 -0
- package/dist/cjs/src/generated/shopper/models/LandingShow.js +2 -0
- package/dist/cjs/src/generated/shopper/models/LandingVenue.d.ts +10 -0
- package/dist/cjs/src/generated/shopper/models/LandingVenue.js +2 -0
- package/dist/cjs/src/generated/shopper/models/NextStepResponse.d.ts +7 -0
- package/dist/cjs/src/generated/shopper/models/NextStepResponse.js +2 -0
- package/dist/cjs/src/generated/shopper/models/OrderBalance.d.ts +26 -0
- package/dist/cjs/src/generated/shopper/models/OrderBalance.js +2 -0
- package/dist/cjs/src/generated/shopper/models/OrderPaymentStatus.d.ts +14 -0
- package/dist/cjs/src/generated/shopper/models/OrderPaymentStatus.js +2 -0
- package/dist/cjs/src/generated/shopper/models/PosDefaultInfoResponse.d.ts +7 -0
- package/dist/cjs/src/generated/shopper/models/PosDefaultInfoResponse.js +2 -0
- package/dist/cjs/src/generated/shopper/models/ProductAddResponse.d.ts +4 -0
- package/dist/cjs/src/generated/shopper/models/SeatInCart.d.ts +8 -0
- package/dist/cjs/src/generated/shopper/models/SetLanguageDto.d.ts +6 -0
- package/dist/cjs/src/generated/shopper/models/SetLanguageDto.js +2 -0
- package/dist/cjs/src/generated/shopper/models/ShowExtras.d.ts +14 -0
- package/dist/cjs/src/generated/shopper/models/ShowExtras.js +2 -0
- package/dist/cjs/src/generated/shopper/models/StreamDetails.d.ts +25 -0
- package/dist/cjs/src/generated/shopper/models/StreamDetails.js +2 -0
- package/dist/cjs/src/generated/shopper/models/StreamDownloadLink.d.ts +4 -0
- package/dist/cjs/src/generated/shopper/models/StreamDownloadLink.js +2 -0
- package/dist/cjs/src/generated/shopper/services/AccountService.d.ts +20 -4
- package/dist/cjs/src/generated/shopper/services/AccountService.js +13 -4
- package/dist/cjs/src/generated/shopper/services/CartService.d.ts +76 -7
- package/dist/cjs/src/generated/shopper/services/CartService.js +98 -7
- package/dist/cjs/src/generated/shopper/services/CheckoutService.d.ts +47 -14
- package/dist/cjs/src/generated/shopper/services/CheckoutService.js +50 -19
- package/dist/cjs/src/generated/shopper/services/CodeService.d.ts +38 -5
- package/dist/cjs/src/generated/shopper/services/CodeService.js +39 -5
- package/dist/cjs/src/generated/shopper/services/DonationService.d.ts +23 -2
- package/dist/cjs/src/generated/shopper/services/DonationService.js +29 -2
- package/dist/cjs/src/generated/shopper/services/EventService.d.ts +46 -4
- package/dist/cjs/src/generated/shopper/services/EventService.js +59 -4
- package/dist/cjs/src/generated/shopper/services/GiftCardService.d.ts +25 -5
- package/dist/cjs/src/generated/shopper/services/GiftCardService.js +16 -5
- package/dist/cjs/src/generated/shopper/services/OrderService.d.ts +209 -16
- package/dist/cjs/src/generated/shopper/services/OrderService.js +276 -16
- package/dist/cjs/src/generated/shopper/services/PaymentService.d.ts +15 -3
- package/dist/cjs/src/generated/shopper/services/PaymentService.js +10 -3
- package/dist/cjs/src/generated/shopper/services/ProductService.d.ts +15 -3
- package/dist/cjs/src/generated/shopper/services/ProductService.js +10 -3
- package/dist/cjs/src/generated/shopper/services/SeatService.d.ts +30 -6
- package/dist/cjs/src/generated/shopper/services/SeatService.js +19 -6
- package/dist/cjs/src/generated/shopper/services/SessionService.d.ts +37 -2
- package/dist/cjs/src/generated/shopper/services/SessionService.js +51 -2
- package/dist/cjs/src/generated/shopper/types.d.ts +29 -2
- package/dist/cjs/src/scripts/build-all.js +83 -19
- package/dist/esm/src/functions/sdkConfig.d.ts +47 -16
- package/dist/esm/src/functions/sdkConfig.js +61 -41
- package/dist/esm/src/generated/portal/core/OpenAPI.js +1 -1
- package/dist/esm/src/generated/portal/core/request.js +41 -7
- package/dist/esm/src/generated/scanner/core/OpenAPI.js +1 -1
- package/dist/esm/src/generated/scanner/core/request.js +41 -7
- package/dist/esm/src/generated/scanner/index.d.ts +1 -0
- package/dist/esm/src/generated/scanner/models/OrderScan.d.ts +9 -0
- package/dist/esm/src/generated/scanner/models/OrderScan.js +1 -0
- package/dist/esm/src/generated/scanner/models/TicketScan.d.ts +1 -0
- package/dist/esm/src/generated/scanner/services/ScanningService.d.ts +16 -0
- package/dist/esm/src/generated/scanner/services/ScanningService.js +28 -0
- package/dist/esm/src/generated/scanner/types.d.ts +1 -0
- package/dist/esm/src/generated/shopper/core/OpenAPI.js +1 -1
- package/dist/esm/src/generated/shopper/core/request.js +41 -7
- package/dist/esm/src/generated/shopper/index.d.ts +29 -2
- package/dist/esm/src/generated/shopper/models/AnswerInput.d.ts +6 -0
- package/dist/esm/src/generated/shopper/models/AnswerInput.js +1 -0
- package/dist/esm/src/generated/shopper/models/CartAmounts.d.ts +38 -0
- package/dist/esm/src/generated/shopper/models/CartAmounts.js +1 -0
- package/dist/esm/src/generated/shopper/models/CartClearResult.d.ts +14 -0
- package/dist/esm/src/generated/shopper/models/CartClearResult.js +1 -0
- package/dist/esm/src/generated/shopper/models/CartCountsLite.d.ts +14 -0
- package/dist/esm/src/generated/shopper/models/CartCountsLite.js +1 -0
- package/dist/esm/src/generated/shopper/models/CartTotals.d.ts +22 -0
- package/dist/esm/src/generated/shopper/models/CartTotals.js +1 -0
- package/dist/esm/src/generated/shopper/models/CheckoutStep.d.ts +10 -0
- package/dist/esm/src/generated/shopper/models/CheckoutStep.js +1 -0
- package/dist/esm/src/generated/shopper/models/CheckoutStepsResponse.d.ts +7 -0
- package/dist/esm/src/generated/shopper/models/CheckoutStepsResponse.js +1 -0
- package/dist/esm/src/generated/shopper/models/CheckoutSubmitBody.d.ts +3 -13
- package/dist/esm/src/generated/shopper/models/CorrelatedCode.d.ts +14 -0
- package/dist/esm/src/generated/shopper/models/CorrelatedCode.js +1 -0
- package/dist/esm/src/generated/shopper/models/EventLegend.d.ts +12 -0
- package/dist/esm/src/generated/shopper/models/EventLegend.js +1 -0
- package/dist/esm/src/generated/shopper/models/EventLegendItem.d.ts +9 -0
- package/dist/esm/src/generated/shopper/models/EventLegendItem.js +1 -0
- package/dist/esm/src/generated/shopper/models/ExchangeAnswersBody.d.ts +4 -0
- package/dist/esm/src/generated/shopper/models/ExchangeAnswersBody.js +1 -0
- package/dist/esm/src/generated/shopper/models/ExchangeCancelSeatResponse.d.ts +7 -0
- package/dist/esm/src/generated/shopper/models/ExchangeCancelSeatResponse.js +1 -0
- package/dist/esm/src/generated/shopper/models/ExchangeShow.d.ts +12 -0
- package/dist/esm/src/generated/shopper/models/ExchangeShow.js +1 -0
- package/dist/esm/src/generated/shopper/models/ExchangeShowsResponse.d.ts +8 -0
- package/dist/esm/src/generated/shopper/models/ExchangeShowsResponse.js +1 -0
- package/dist/esm/src/generated/shopper/models/ExtendTimerDto.d.ts +6 -0
- package/dist/esm/src/generated/shopper/models/ExtendTimerDto.js +1 -0
- package/dist/esm/src/generated/shopper/models/ExtendTimerResponseDto.d.ts +10 -0
- package/dist/esm/src/generated/shopper/models/ExtendTimerResponseDto.js +1 -0
- package/dist/esm/src/generated/shopper/models/FullEventDetails.d.ts +2 -2
- package/dist/esm/src/generated/shopper/models/GaSelection.d.ts +24 -0
- package/dist/esm/src/generated/shopper/models/GaSelection.js +1 -0
- package/dist/esm/src/generated/shopper/models/GaTier.d.ts +27 -0
- package/dist/esm/src/generated/shopper/models/GaTier.js +1 -0
- package/dist/esm/src/generated/shopper/models/LandingPageResponse.d.ts +10 -0
- package/dist/esm/src/generated/shopper/models/LandingProduct.d.ts +11 -0
- package/dist/esm/src/generated/shopper/models/LandingProduct.js +1 -0
- package/dist/esm/src/generated/shopper/models/LandingShow.d.ts +16 -0
- package/dist/esm/src/generated/shopper/models/LandingShow.js +1 -0
- package/dist/esm/src/generated/shopper/models/LandingVenue.d.ts +10 -0
- package/dist/esm/src/generated/shopper/models/LandingVenue.js +1 -0
- package/dist/esm/src/generated/shopper/models/NextStepResponse.d.ts +7 -0
- package/dist/esm/src/generated/shopper/models/NextStepResponse.js +1 -0
- package/dist/esm/src/generated/shopper/models/OrderBalance.d.ts +26 -0
- package/dist/esm/src/generated/shopper/models/OrderBalance.js +1 -0
- package/dist/esm/src/generated/shopper/models/OrderPaymentStatus.d.ts +14 -0
- package/dist/esm/src/generated/shopper/models/OrderPaymentStatus.js +1 -0
- package/dist/esm/src/generated/shopper/models/PosDefaultInfoResponse.d.ts +7 -0
- package/dist/esm/src/generated/shopper/models/PosDefaultInfoResponse.js +1 -0
- package/dist/esm/src/generated/shopper/models/ProductAddResponse.d.ts +4 -0
- package/dist/esm/src/generated/shopper/models/SeatInCart.d.ts +8 -0
- package/dist/esm/src/generated/shopper/models/SetLanguageDto.d.ts +6 -0
- package/dist/esm/src/generated/shopper/models/SetLanguageDto.js +1 -0
- package/dist/esm/src/generated/shopper/models/ShowExtras.d.ts +14 -0
- package/dist/esm/src/generated/shopper/models/ShowExtras.js +1 -0
- package/dist/esm/src/generated/shopper/models/StreamDetails.d.ts +25 -0
- package/dist/esm/src/generated/shopper/models/StreamDetails.js +1 -0
- package/dist/esm/src/generated/shopper/models/StreamDownloadLink.d.ts +4 -0
- package/dist/esm/src/generated/shopper/models/StreamDownloadLink.js +1 -0
- package/dist/esm/src/generated/shopper/services/AccountService.d.ts +20 -4
- package/dist/esm/src/generated/shopper/services/AccountService.js +13 -4
- package/dist/esm/src/generated/shopper/services/CartService.d.ts +76 -7
- package/dist/esm/src/generated/shopper/services/CartService.js +98 -7
- package/dist/esm/src/generated/shopper/services/CheckoutService.d.ts +47 -14
- package/dist/esm/src/generated/shopper/services/CheckoutService.js +50 -19
- package/dist/esm/src/generated/shopper/services/CodeService.d.ts +38 -5
- package/dist/esm/src/generated/shopper/services/CodeService.js +39 -5
- package/dist/esm/src/generated/shopper/services/DonationService.d.ts +23 -2
- package/dist/esm/src/generated/shopper/services/DonationService.js +29 -2
- package/dist/esm/src/generated/shopper/services/EventService.d.ts +46 -4
- package/dist/esm/src/generated/shopper/services/EventService.js +59 -4
- package/dist/esm/src/generated/shopper/services/GiftCardService.d.ts +25 -5
- package/dist/esm/src/generated/shopper/services/GiftCardService.js +16 -5
- package/dist/esm/src/generated/shopper/services/OrderService.d.ts +209 -16
- package/dist/esm/src/generated/shopper/services/OrderService.js +276 -16
- package/dist/esm/src/generated/shopper/services/PaymentService.d.ts +15 -3
- package/dist/esm/src/generated/shopper/services/PaymentService.js +10 -3
- package/dist/esm/src/generated/shopper/services/ProductService.d.ts +15 -3
- package/dist/esm/src/generated/shopper/services/ProductService.js +10 -3
- package/dist/esm/src/generated/shopper/services/SeatService.d.ts +30 -6
- package/dist/esm/src/generated/shopper/services/SeatService.js +19 -6
- package/dist/esm/src/generated/shopper/services/SessionService.d.ts +37 -2
- package/dist/esm/src/generated/shopper/services/SessionService.js +51 -2
- package/dist/esm/src/generated/shopper/types.d.ts +29 -2
- package/dist/esm/src/scripts/build-all.js +83 -19
- package/package.json +3 -2
- package/pnpm-workspace.yaml +2 -0
- package/src/custom/custom-request.txt +43 -9
- package/src/functions/sdkConfig.ts +91 -54
- package/src/generated/portal/core/OpenAPI.ts +1 -1
- package/src/generated/portal/core/request.ts +43 -9
- package/src/generated/scanner/core/OpenAPI.ts +1 -1
- package/src/generated/scanner/core/request.ts +43 -9
- package/src/generated/scanner/index.ts +1 -0
- package/src/generated/scanner/models/OrderScan.ts +14 -0
- package/src/generated/scanner/models/TicketScan.ts +1 -0
- package/src/generated/scanner/services/ScanningService.ts +38 -0
- package/src/generated/scanner/types.ts +1 -0
- package/src/generated/shopper/core/OpenAPI.ts +1 -1
- package/src/generated/shopper/core/request.ts +43 -9
- package/src/generated/shopper/index.ts +29 -2
- package/src/generated/shopper/models/AnswerInput.ts +11 -0
- package/src/generated/shopper/models/CartAmounts.ts +43 -0
- package/src/generated/shopper/models/CartClearResult.ts +19 -0
- package/src/generated/shopper/models/CartCountsLite.ts +19 -0
- package/src/generated/shopper/models/CartTotals.ts +27 -0
- package/src/generated/shopper/models/CheckoutStep.ts +15 -0
- package/src/generated/shopper/models/CheckoutStepsResponse.ts +12 -0
- package/src/generated/shopper/models/CheckoutSubmitBody.ts +3 -13
- package/src/generated/shopper/models/CorrelatedCode.ts +19 -0
- package/src/generated/shopper/models/EventLegend.ts +17 -0
- package/src/generated/shopper/models/EventLegendItem.ts +14 -0
- package/src/generated/shopper/models/ExchangeAnswersBody.ts +9 -0
- package/src/generated/shopper/models/ExchangeCancelSeatResponse.ts +12 -0
- package/src/generated/shopper/models/ExchangeShow.ts +17 -0
- package/src/generated/shopper/models/ExchangeShowsResponse.ts +13 -0
- package/src/generated/shopper/models/ExtendTimerDto.ts +11 -0
- package/src/generated/shopper/models/ExtendTimerResponseDto.ts +15 -0
- package/src/generated/shopper/models/FullEventDetails.ts +2 -2
- package/src/generated/shopper/models/GaSelection.ts +29 -0
- package/src/generated/shopper/models/GaTier.ts +32 -0
- package/src/generated/shopper/models/LandingPageResponse.ts +10 -0
- package/src/generated/shopper/models/LandingProduct.ts +16 -0
- package/src/generated/shopper/models/LandingShow.ts +21 -0
- package/src/generated/shopper/models/LandingVenue.ts +15 -0
- package/src/generated/shopper/models/NextStepResponse.ts +12 -0
- package/src/generated/shopper/models/OrderBalance.ts +31 -0
- package/src/generated/shopper/models/OrderPaymentStatus.ts +19 -0
- package/src/generated/shopper/models/PosDefaultInfoResponse.ts +12 -0
- package/src/generated/shopper/models/ProductAddResponse.ts +4 -0
- package/src/generated/shopper/models/SeatInCart.ts +8 -0
- package/src/generated/shopper/models/SetLanguageDto.ts +11 -0
- package/src/generated/shopper/models/ShowExtras.ts +19 -0
- package/src/generated/shopper/models/StreamDetails.ts +30 -0
- package/src/generated/shopper/models/StreamDownloadLink.ts +9 -0
- package/src/generated/shopper/services/AccountService.ts +22 -9
- package/src/generated/shopper/services/CartService.ts +123 -14
- package/src/generated/shopper/services/CheckoutService.ts +69 -29
- package/src/generated/shopper/services/CodeService.ts +58 -15
- package/src/generated/shopper/services/DonationService.ts +38 -5
- package/src/generated/shopper/services/EventService.ts +77 -10
- package/src/generated/shopper/services/GiftCardService.ts +28 -12
- package/src/generated/shopper/services/OrderService.ts +356 -41
- package/src/generated/shopper/services/PaymentService.ts +19 -9
- package/src/generated/shopper/services/ProductService.ts +19 -9
- package/src/generated/shopper/services/SeatService.ts +38 -19
- package/src/generated/shopper/services/SessionService.ts +65 -5
- package/src/generated/shopper/types.ts +29 -2
- package/src/scripts/build-all.ts +127 -26
- package/src/generated/shopper/models/Chart.ts +0 -13
- package/src/generated/shopper/models/SaveNonceBody.ts +0 -15
package/README.md
CHANGED
|
@@ -18,13 +18,38 @@ npm install @drttix/drt-sdk
|
|
|
18
18
|
```ts
|
|
19
19
|
import { DRT } from "@drttix/drt-sdk";
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
DRT.init({
|
|
22
|
+
shopperGuid: "your-shopper-guid",
|
|
23
|
+
accountId: "your-account-id",
|
|
24
|
+
apiKey: "your-api-key",
|
|
25
|
+
});
|
|
24
26
|
|
|
25
|
-
const
|
|
27
|
+
const theme = await DRT.shopper.account.getTheme();
|
|
26
28
|
```
|
|
27
29
|
|
|
30
|
+
### Backend serving many shoppers/accounts
|
|
31
|
+
|
|
32
|
+
By default the SDK is a singleton: one shopperGuid/accountId for the whole
|
|
33
|
+
process, set once via `DRT.init()`. A backend that proxies calls on behalf of
|
|
34
|
+
many different shoppers can opt into `shopperScope: 'per-request'` instead,
|
|
35
|
+
and pass `{ shopperGuid, accountId }` as the last argument to each shopper
|
|
36
|
+
call:
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
import { DRT } from "@drttix/drt-sdk";
|
|
40
|
+
|
|
41
|
+
DRT.init({ apiKey: "your-api-key", shopperScope: "per-request" });
|
|
42
|
+
|
|
43
|
+
await DRT.shopper.product.addProduct(productBody, {
|
|
44
|
+
shopperGuid: req.shopperGuid,
|
|
45
|
+
accountId: req.accountId,
|
|
46
|
+
});
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
`apiKey` is still set once at init — it identifies your backend, not the
|
|
50
|
+
shopper. `shopperGuid`/`accountId` are the only values that become
|
|
51
|
+
per-request. Portal and scanner are unaffected and remain singleton-scoped.
|
|
52
|
+
|
|
28
53
|
---
|
|
29
54
|
|
|
30
55
|
## 🛠️ Local Development (Developer Only)
|
package/azure-pipelines.yml
CHANGED
|
@@ -51,6 +51,7 @@ steps:
|
|
|
51
51
|
scriptType: 'inline'
|
|
52
52
|
inlineScript: |
|
|
53
53
|
aws s3 cp $(Build.SourcesDirectory)/dist/bundle/drt-sdk.js s3://drt-public-assets/sdk/$(VERSION)/drt-sdk.js --cache-control "max-age=31536000,public,immutable"
|
|
54
|
+
aws s3 cp $(Build.SourcesDirectory)/dist/bundle/staging.js s3://drt-public-assets/sdk/$(VERSION)/staging.js --cache-control "max-age=31536000,public,immutable"
|
|
54
55
|
|
|
55
56
|
- task: AWSShellScript@1
|
|
56
57
|
displayName: 'Upload to latest'
|
|
@@ -60,6 +61,7 @@ steps:
|
|
|
60
61
|
scriptType: 'inline'
|
|
61
62
|
inlineScript: |
|
|
62
63
|
aws s3 cp $(Build.SourcesDirectory)/dist/bundle/drt-sdk.js s3://drt-public-assets/sdk/latest/drt-sdk.js --cache-control "max-age=0,no-cache,no-store,must-revalidate"
|
|
64
|
+
aws s3 cp $(Build.SourcesDirectory)/dist/bundle/staging.js s3://drt-public-assets/sdk/latest/staging.js --cache-control "max-age=0,no-cache,no-store,must-revalidate"
|
|
63
65
|
|
|
64
66
|
- task: AWSShellScript@1
|
|
65
67
|
displayName: 'Upload demo files'
|
|
@@ -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
|
-
*
|
|
68
|
+
* Get the shopperScope the SDK was initialized with ('singleton' if not yet initialized).
|
|
39
69
|
*/
|
|
40
|
-
export declare function
|
|
70
|
+
export declare function getShopperScope(): ShopperScope;
|
|
41
71
|
/**
|
|
42
|
-
*
|
|
43
|
-
* Used internally by wrapped services.
|
|
72
|
+
* Reset the SDK configuration.
|
|
44
73
|
*/
|
|
45
|
-
export declare function
|
|
46
|
-
shopperGuid: string;
|
|
47
|
-
accountId: string;
|
|
48
|
-
apiKey: string;
|
|
49
|
-
};
|
|
74
|
+
export declare function reset(): void;
|
|
50
75
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
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
|
|
83
|
+
export declare function resolveShopperHeaders(context?: {
|
|
84
|
+
shopperGuid?: string;
|
|
85
|
+
accountId?: string;
|
|
86
|
+
}): Record<string, string>;
|
|
@@ -3,15 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.init = init;
|
|
4
4
|
exports.isReady = isReady;
|
|
5
5
|
exports.getConfig = getConfig;
|
|
6
|
+
exports.getShopperScope = getShopperScope;
|
|
6
7
|
exports.reset = reset;
|
|
7
|
-
exports.
|
|
8
|
-
exports.createAutoCredentialsProxy = createAutoCredentialsProxy;
|
|
8
|
+
exports.resolveShopperHeaders = resolveShopperHeaders;
|
|
9
9
|
// SDK Configuration - allows initializing credentials once
|
|
10
10
|
const OpenAPI_1 = require("../generated/shopper/core/OpenAPI");
|
|
11
11
|
const OpenAPI_2 = require("../generated/scanner/core/OpenAPI");
|
|
12
12
|
const OpenAPI_3 = require("../generated/portal/core/OpenAPI");
|
|
13
13
|
let isInitialized = false;
|
|
14
14
|
let currentConfig = null;
|
|
15
|
+
let currentShopperScope = 'singleton';
|
|
15
16
|
/**
|
|
16
17
|
* Initialize the DRT SDK with credentials.
|
|
17
18
|
* Once initialized, these credentials will be automatically included
|
|
@@ -23,7 +24,7 @@ let currentConfig = null;
|
|
|
23
24
|
* ```javascript
|
|
24
25
|
* import { DRT } from '@drttix/drt-sdk';
|
|
25
26
|
*
|
|
26
|
-
* // Initialize once
|
|
27
|
+
* // Initialize once (default: singleton shopper scope)
|
|
27
28
|
* DRT.init({
|
|
28
29
|
* shopperGuid: 'your-shopper-guid',
|
|
29
30
|
* accountId: 'your-account-id',
|
|
@@ -33,21 +34,44 @@ let currentConfig = null;
|
|
|
33
34
|
* // Now make calls without passing credentials
|
|
34
35
|
* const theme = await DRT.shopper.account.getTheme();
|
|
35
36
|
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```javascript
|
|
40
|
+
* // Backend serving many shoppers/accounts from a single SDK instance
|
|
41
|
+
* DRT.init({ apiKey: 'your-api-key', shopperScope: 'per-request' });
|
|
42
|
+
*
|
|
43
|
+
* // Pass shopperGuid/accountId per call instead
|
|
44
|
+
* await DRT.shopper.product.addProduct(body, {
|
|
45
|
+
* shopperGuid: req.shopperGuid,
|
|
46
|
+
* accountId: req.accountId,
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
36
49
|
*/
|
|
37
50
|
function init(config) {
|
|
38
|
-
|
|
39
|
-
|
|
51
|
+
var _a;
|
|
52
|
+
if (!config.apiKey) {
|
|
53
|
+
throw new Error('DRT SDK init requires apiKey');
|
|
54
|
+
}
|
|
55
|
+
const shopperScope = (_a = config.shopperScope) !== null && _a !== void 0 ? _a : 'singleton';
|
|
56
|
+
if (shopperScope === 'singleton' && (!config.shopperGuid || !config.accountId)) {
|
|
57
|
+
throw new Error('DRT SDK init requires shopperGuid and accountId (or pass shopperScope: "per-request" to supply them per shopper call instead)');
|
|
40
58
|
}
|
|
41
59
|
currentConfig = config;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
60
|
+
currentShopperScope = shopperScope;
|
|
61
|
+
// Portal and scanner are always singleton-scoped: one fixed set of
|
|
62
|
+
// credentials for every call, applied globally via OpenAPI.HEADERS.
|
|
63
|
+
const sharedHeaders = { apikey: config.apiKey };
|
|
64
|
+
if (config.shopperGuid && config.accountId) {
|
|
65
|
+
sharedHeaders.shopperguid = config.shopperGuid;
|
|
66
|
+
sharedHeaders.accountid = config.accountId;
|
|
67
|
+
}
|
|
68
|
+
OpenAPI_2.OpenAPI.HEADERS = sharedHeaders;
|
|
69
|
+
OpenAPI_3.OpenAPI.HEADERS = sharedHeaders;
|
|
70
|
+
// Shopper credentials are resolved per-call by resolveShopperHeaders()
|
|
71
|
+
// (see generated shopper services), so no global header is set here —
|
|
72
|
+
// that's what lets shopperScope: 'per-request' override per call without
|
|
73
|
+
// a global value silently taking precedence.
|
|
74
|
+
OpenAPI_1.OpenAPI.HEADERS = undefined;
|
|
51
75
|
isInitialized = true;
|
|
52
76
|
}
|
|
53
77
|
/**
|
|
@@ -62,50 +86,46 @@ function isReady() {
|
|
|
62
86
|
function getConfig() {
|
|
63
87
|
return currentConfig;
|
|
64
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Get the shopperScope the SDK was initialized with ('singleton' if not yet initialized).
|
|
91
|
+
*/
|
|
92
|
+
function getShopperScope() {
|
|
93
|
+
return currentShopperScope;
|
|
94
|
+
}
|
|
65
95
|
/**
|
|
66
96
|
* Reset the SDK configuration.
|
|
67
97
|
*/
|
|
68
98
|
function reset() {
|
|
69
99
|
currentConfig = null;
|
|
100
|
+
currentShopperScope = 'singleton';
|
|
70
101
|
isInitialized = false;
|
|
71
102
|
OpenAPI_1.OpenAPI.HEADERS = undefined;
|
|
72
103
|
OpenAPI_2.OpenAPI.HEADERS = undefined;
|
|
73
104
|
OpenAPI_3.OpenAPI.HEADERS = undefined;
|
|
74
105
|
}
|
|
75
106
|
/**
|
|
76
|
-
*
|
|
77
|
-
*
|
|
107
|
+
* Resolves the shopperguid/accountid/apikey headers for a single shopper API call.
|
|
108
|
+
*
|
|
109
|
+
* Used internally by every generated shopper service method. `context`, when
|
|
110
|
+
* provided, overrides the shopperGuid/accountId set at DRT.init() — this is
|
|
111
|
+
* what makes shopperScope: 'per-request' work. apiKey always comes from
|
|
112
|
+
* DRT.init(), since it identifies the calling backend, not the shopper.
|
|
78
113
|
*/
|
|
79
|
-
function
|
|
114
|
+
function resolveShopperHeaders(context) {
|
|
115
|
+
var _a, _b;
|
|
80
116
|
if (!currentConfig) {
|
|
81
117
|
throw new Error('DRT SDK not initialized. Call DRT.init() first.');
|
|
82
118
|
}
|
|
119
|
+
const shopperGuid = (_a = context === null || context === void 0 ? void 0 : context.shopperGuid) !== null && _a !== void 0 ? _a : currentConfig.shopperGuid;
|
|
120
|
+
const accountId = (_b = context === null || context === void 0 ? void 0 : context.accountId) !== null && _b !== void 0 ? _b : currentConfig.accountId;
|
|
121
|
+
if (!shopperGuid || !accountId) {
|
|
122
|
+
throw new Error(currentShopperScope === 'per-request'
|
|
123
|
+
? '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.'
|
|
124
|
+
: 'DRT SDK not initialized with shopperGuid/accountId. Call DRT.init() first.');
|
|
125
|
+
}
|
|
83
126
|
return {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
127
|
+
shopperguid: shopperGuid,
|
|
128
|
+
accountid: accountId,
|
|
129
|
+
apikey: currentConfig.apiKey,
|
|
87
130
|
};
|
|
88
131
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Creates a proxy that auto-injects credentials for service methods.
|
|
91
|
-
* Methods that take (shopperguid, accountid, apikey, ...rest) as first 3 params
|
|
92
|
-
* will have those auto-filled from the SDK config.
|
|
93
|
-
*/
|
|
94
|
-
function createAutoCredentialsProxy(service) {
|
|
95
|
-
return new Proxy(service, {
|
|
96
|
-
get(target, prop) {
|
|
97
|
-
const value = target[prop];
|
|
98
|
-
if (typeof value === 'function') {
|
|
99
|
-
return (...args) => {
|
|
100
|
-
// If SDK is initialized, prepend credentials
|
|
101
|
-
if (isInitialized && currentConfig) {
|
|
102
|
-
return value.call(target, currentConfig.shopperGuid, currentConfig.accountId, currentConfig.apiKey, ...args);
|
|
103
|
-
}
|
|
104
|
-
// Otherwise call with original args
|
|
105
|
-
return value.apply(target, args);
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
return value;
|
|
109
|
-
},
|
|
110
|
-
});
|
|
111
|
-
}
|
|
@@ -210,13 +210,16 @@ const getResponseBody = async (response) => {
|
|
|
210
210
|
const contentType = response.headers.get("Content-Type");
|
|
211
211
|
if (contentType) {
|
|
212
212
|
const jsonTypes = ["application/json", "application/problem+json"];
|
|
213
|
-
const
|
|
213
|
+
const lc = contentType.toLowerCase();
|
|
214
|
+
const isJSON = jsonTypes.some((type) => lc.startsWith(type));
|
|
214
215
|
if (isJSON) {
|
|
215
216
|
return await response.json();
|
|
216
217
|
}
|
|
217
|
-
|
|
218
|
-
|
|
218
|
+
// Return Blob for PDF / binary responses
|
|
219
|
+
if (lc.startsWith('application/pdf') || lc.startsWith('application/octet-stream')) {
|
|
220
|
+
return await response.blob();
|
|
219
221
|
}
|
|
222
|
+
return await response.text();
|
|
220
223
|
}
|
|
221
224
|
}
|
|
222
225
|
catch (error) {
|
|
@@ -248,7 +251,36 @@ const catchErrorCodes = (options, result) => {
|
|
|
248
251
|
}
|
|
249
252
|
};
|
|
250
253
|
exports.catchErrorCodes = catchErrorCodes;
|
|
251
|
-
|
|
254
|
+
// Cookies are cached per request "identity" rather than in one shared slot.
|
|
255
|
+
// Shopper calls carry shopperguid/accountid in options.headers (resolved
|
|
256
|
+
// per-call by resolveShopperHeaders()), so each shopper gets its own cookie
|
|
257
|
+
// jar instead of one shopper's session leaking into another's requests when
|
|
258
|
+
// a single SDK instance serves many shoppers concurrently (shopperScope:
|
|
259
|
+
// 'per-request'). Portal/scanner calls carry no such header and fall back to
|
|
260
|
+
// the single default slot, matching prior behavior.
|
|
261
|
+
const DEFAULT_COOKIE_KEY = "__default__";
|
|
262
|
+
const MAX_COOKIE_ENTRIES = 10000;
|
|
263
|
+
const cookiesByKey = new Map();
|
|
264
|
+
const getCookieKey = (options) => {
|
|
265
|
+
var _a, _b;
|
|
266
|
+
const shopperguid = (_a = options.headers) === null || _a === void 0 ? void 0 : _a["shopperguid"];
|
|
267
|
+
const accountid = (_b = options.headers) === null || _b === void 0 ? void 0 : _b["accountid"];
|
|
268
|
+
if ((0, exports.isStringWithValue)(shopperguid)) {
|
|
269
|
+
return `${shopperguid}:${(0, exports.isStringWithValue)(accountid) ? accountid : ""}`;
|
|
270
|
+
}
|
|
271
|
+
return DEFAULT_COOKIE_KEY;
|
|
272
|
+
};
|
|
273
|
+
const storeCookie = (key, value) => {
|
|
274
|
+
if (!cookiesByKey.has(key) && cookiesByKey.size >= MAX_COOKIE_ENTRIES) {
|
|
275
|
+
// Evict the oldest entry (Map preserves insertion order) to bound memory
|
|
276
|
+
// on a long-running, many-shopper backend process.
|
|
277
|
+
const oldestKey = cookiesByKey.keys().next().value;
|
|
278
|
+
if (oldestKey !== undefined) {
|
|
279
|
+
cookiesByKey.delete(oldestKey);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
cookiesByKey.set(key, value);
|
|
283
|
+
};
|
|
252
284
|
/**
|
|
253
285
|
* Wraps sendRequest to capture cookies on login
|
|
254
286
|
* and attach cookies on other requests
|
|
@@ -259,6 +291,7 @@ const request = (config, options) => {
|
|
|
259
291
|
const url = getUrl(config, options);
|
|
260
292
|
const formData = (0, exports.getFormData)(options);
|
|
261
293
|
const body = (0, exports.getRequestBody)(options);
|
|
294
|
+
const cookieKey = getCookieKey(options);
|
|
262
295
|
// Before making headers, possibly attach cookie if we have it
|
|
263
296
|
const baseHeaders = await (0, exports.getHeaders)(config, options);
|
|
264
297
|
// We will build combined headers
|
|
@@ -266,9 +299,10 @@ const request = (config, options) => {
|
|
|
266
299
|
baseHeaders.forEach((value, key) => {
|
|
267
300
|
headerObj[key] = value;
|
|
268
301
|
});
|
|
269
|
-
|
|
302
|
+
const storedCookie = cookiesByKey.get(cookieKey);
|
|
303
|
+
if (storedCookie) {
|
|
270
304
|
// Attach stored cookie
|
|
271
|
-
headerObj["Cookie"] =
|
|
305
|
+
headerObj["Cookie"] = storedCookie;
|
|
272
306
|
}
|
|
273
307
|
const headers = new Headers(headerObj);
|
|
274
308
|
if (!onCancel.isCancelled) {
|
|
@@ -277,7 +311,7 @@ const request = (config, options) => {
|
|
|
277
311
|
const setCookie = response.headers.get("set-cookie");
|
|
278
312
|
if (setCookie) {
|
|
279
313
|
// Overwrite or append as needed
|
|
280
|
-
|
|
314
|
+
storeCookie(cookieKey, setCookie);
|
|
281
315
|
}
|
|
282
316
|
const responseBody = await (0, exports.getResponseBody)(response);
|
|
283
317
|
const responseHeader = (0, exports.getResponseHeader)(response, options.responseHeader);
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OpenAPI = void 0;
|
|
4
4
|
exports.OpenAPI = {
|
|
5
5
|
BASE: 'https://api.drttix.com/scanner-v3',
|
|
6
|
-
VERSION: '
|
|
6
|
+
VERSION: '20260625.1',
|
|
7
7
|
WITH_CREDENTIALS: false,
|
|
8
8
|
CREDENTIALS: 'include',
|
|
9
9
|
TOKEN: undefined,
|
|
@@ -210,13 +210,16 @@ const getResponseBody = async (response) => {
|
|
|
210
210
|
const contentType = response.headers.get("Content-Type");
|
|
211
211
|
if (contentType) {
|
|
212
212
|
const jsonTypes = ["application/json", "application/problem+json"];
|
|
213
|
-
const
|
|
213
|
+
const lc = contentType.toLowerCase();
|
|
214
|
+
const isJSON = jsonTypes.some((type) => lc.startsWith(type));
|
|
214
215
|
if (isJSON) {
|
|
215
216
|
return await response.json();
|
|
216
217
|
}
|
|
217
|
-
|
|
218
|
-
|
|
218
|
+
// Return Blob for PDF / binary responses
|
|
219
|
+
if (lc.startsWith('application/pdf') || lc.startsWith('application/octet-stream')) {
|
|
220
|
+
return await response.blob();
|
|
219
221
|
}
|
|
222
|
+
return await response.text();
|
|
220
223
|
}
|
|
221
224
|
}
|
|
222
225
|
catch (error) {
|
|
@@ -248,7 +251,36 @@ const catchErrorCodes = (options, result) => {
|
|
|
248
251
|
}
|
|
249
252
|
};
|
|
250
253
|
exports.catchErrorCodes = catchErrorCodes;
|
|
251
|
-
|
|
254
|
+
// Cookies are cached per request "identity" rather than in one shared slot.
|
|
255
|
+
// Shopper calls carry shopperguid/accountid in options.headers (resolved
|
|
256
|
+
// per-call by resolveShopperHeaders()), so each shopper gets its own cookie
|
|
257
|
+
// jar instead of one shopper's session leaking into another's requests when
|
|
258
|
+
// a single SDK instance serves many shoppers concurrently (shopperScope:
|
|
259
|
+
// 'per-request'). Portal/scanner calls carry no such header and fall back to
|
|
260
|
+
// the single default slot, matching prior behavior.
|
|
261
|
+
const DEFAULT_COOKIE_KEY = "__default__";
|
|
262
|
+
const MAX_COOKIE_ENTRIES = 10000;
|
|
263
|
+
const cookiesByKey = new Map();
|
|
264
|
+
const getCookieKey = (options) => {
|
|
265
|
+
var _a, _b;
|
|
266
|
+
const shopperguid = (_a = options.headers) === null || _a === void 0 ? void 0 : _a["shopperguid"];
|
|
267
|
+
const accountid = (_b = options.headers) === null || _b === void 0 ? void 0 : _b["accountid"];
|
|
268
|
+
if ((0, exports.isStringWithValue)(shopperguid)) {
|
|
269
|
+
return `${shopperguid}:${(0, exports.isStringWithValue)(accountid) ? accountid : ""}`;
|
|
270
|
+
}
|
|
271
|
+
return DEFAULT_COOKIE_KEY;
|
|
272
|
+
};
|
|
273
|
+
const storeCookie = (key, value) => {
|
|
274
|
+
if (!cookiesByKey.has(key) && cookiesByKey.size >= MAX_COOKIE_ENTRIES) {
|
|
275
|
+
// Evict the oldest entry (Map preserves insertion order) to bound memory
|
|
276
|
+
// on a long-running, many-shopper backend process.
|
|
277
|
+
const oldestKey = cookiesByKey.keys().next().value;
|
|
278
|
+
if (oldestKey !== undefined) {
|
|
279
|
+
cookiesByKey.delete(oldestKey);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
cookiesByKey.set(key, value);
|
|
283
|
+
};
|
|
252
284
|
/**
|
|
253
285
|
* Wraps sendRequest to capture cookies on login
|
|
254
286
|
* and attach cookies on other requests
|
|
@@ -259,6 +291,7 @@ const request = (config, options) => {
|
|
|
259
291
|
const url = getUrl(config, options);
|
|
260
292
|
const formData = (0, exports.getFormData)(options);
|
|
261
293
|
const body = (0, exports.getRequestBody)(options);
|
|
294
|
+
const cookieKey = getCookieKey(options);
|
|
262
295
|
// Before making headers, possibly attach cookie if we have it
|
|
263
296
|
const baseHeaders = await (0, exports.getHeaders)(config, options);
|
|
264
297
|
// We will build combined headers
|
|
@@ -266,9 +299,10 @@ const request = (config, options) => {
|
|
|
266
299
|
baseHeaders.forEach((value, key) => {
|
|
267
300
|
headerObj[key] = value;
|
|
268
301
|
});
|
|
269
|
-
|
|
302
|
+
const storedCookie = cookiesByKey.get(cookieKey);
|
|
303
|
+
if (storedCookie) {
|
|
270
304
|
// Attach stored cookie
|
|
271
|
-
headerObj["Cookie"] =
|
|
305
|
+
headerObj["Cookie"] = storedCookie;
|
|
272
306
|
}
|
|
273
307
|
const headers = new Headers(headerObj);
|
|
274
308
|
if (!onCancel.isCancelled) {
|
|
@@ -277,7 +311,7 @@ const request = (config, options) => {
|
|
|
277
311
|
const setCookie = response.headers.get("set-cookie");
|
|
278
312
|
if (setCookie) {
|
|
279
313
|
// Overwrite or append as needed
|
|
280
|
-
|
|
314
|
+
storeCookie(cookieKey, setCookie);
|
|
281
315
|
}
|
|
282
316
|
const responseBody = await (0, exports.getResponseBody)(response);
|
|
283
317
|
const responseHeader = (0, exports.getResponseHeader)(response, options.responseHeader);
|
|
@@ -11,6 +11,7 @@ export type { EventSkin } from './models/EventSkin';
|
|
|
11
11
|
export type { MobileReceiptResponse } from './models/MobileReceiptResponse';
|
|
12
12
|
export type { OrderDetails } from './models/OrderDetails';
|
|
13
13
|
export type { OrderProduct } from './models/OrderProduct';
|
|
14
|
+
export type { OrderScan } from './models/OrderScan';
|
|
14
15
|
export type { OrderSeat } from './models/OrderSeat';
|
|
15
16
|
export type { OrderSummary } from './models/OrderSummary';
|
|
16
17
|
export type { Product } from './models/Product';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { EventResponse } from '../models/EventResponse';
|
|
2
2
|
import type { MobileReceiptResponse } from '../models/MobileReceiptResponse';
|
|
3
3
|
import type { OrderDetails } from '../models/OrderDetails';
|
|
4
|
+
import type { OrderScan } from '../models/OrderScan';
|
|
4
5
|
import type { ProductQR } from '../models/ProductQR';
|
|
5
6
|
import type { ProductScan } from '../models/ProductScan';
|
|
6
7
|
import type { ReceiptResponse } from '../models/ReceiptResponse';
|
|
@@ -100,6 +101,21 @@ export declare class ScanningService {
|
|
|
100
101
|
* @throws ApiError
|
|
101
102
|
*/
|
|
102
103
|
static appControllerGetOrder(c: string, oid: number, type: 'seats' | 'merch', lang?: any): CancelablePromise<OrderDetails>;
|
|
104
|
+
/**
|
|
105
|
+
* Used to scan every remaining ticket in an order
|
|
106
|
+
* Scans all unscanned tickets in an order and returns an OrderScan object summarizing the results
|
|
107
|
+
* @param c Show code
|
|
108
|
+
* @param devicename The name of the device issuing the request
|
|
109
|
+
* @param requestBody The order to scan, identified by orderId
|
|
110
|
+
* @param lang Language for error messages to be returned in
|
|
111
|
+
* @returns OrderScan Scans the order and returns the scan information.
|
|
112
|
+
* @throws ApiError
|
|
113
|
+
*/
|
|
114
|
+
static appControllerScanEntireOrder(c: string, devicename: string, requestBody: {
|
|
115
|
+
orderId?: {
|
|
116
|
+
oid?: number;
|
|
117
|
+
};
|
|
118
|
+
}, lang?: string): CancelablePromise<OrderScan>;
|
|
103
119
|
/**
|
|
104
120
|
* Used to get a show by its showCode
|
|
105
121
|
* Returns details for a single event.
|
|
@@ -229,6 +229,34 @@ class ScanningService {
|
|
|
229
229
|
},
|
|
230
230
|
});
|
|
231
231
|
}
|
|
232
|
+
/**
|
|
233
|
+
* Used to scan every remaining ticket in an order
|
|
234
|
+
* Scans all unscanned tickets in an order and returns an OrderScan object summarizing the results
|
|
235
|
+
* @param c Show code
|
|
236
|
+
* @param devicename The name of the device issuing the request
|
|
237
|
+
* @param requestBody The order to scan, identified by orderId
|
|
238
|
+
* @param lang Language for error messages to be returned in
|
|
239
|
+
* @returns OrderScan Scans the order and returns the scan information.
|
|
240
|
+
* @throws ApiError
|
|
241
|
+
*/
|
|
242
|
+
static appControllerScanEntireOrder(c, devicename, requestBody, lang) {
|
|
243
|
+
return (0, request_1.request)(OpenAPI_1.OpenAPI, {
|
|
244
|
+
method: 'POST',
|
|
245
|
+
url: '/order',
|
|
246
|
+
query: {
|
|
247
|
+
'c': c,
|
|
248
|
+
'devicename': devicename,
|
|
249
|
+
'lang': lang,
|
|
250
|
+
},
|
|
251
|
+
body: requestBody,
|
|
252
|
+
mediaType: 'application/json',
|
|
253
|
+
errors: {
|
|
254
|
+
400: `Bad Request error with error details.`,
|
|
255
|
+
404: `Not found error with error details.`,
|
|
256
|
+
500: `Internal Server Error, please contact developers.`,
|
|
257
|
+
},
|
|
258
|
+
});
|
|
259
|
+
}
|
|
232
260
|
/**
|
|
233
261
|
* Used to get a show by its showCode
|
|
234
262
|
* Returns details for a single event.
|
|
@@ -7,6 +7,7 @@ export type { EventSkin } from './models/EventSkin';
|
|
|
7
7
|
export type { MobileReceiptResponse } from './models/MobileReceiptResponse';
|
|
8
8
|
export type { OrderDetails } from './models/OrderDetails';
|
|
9
9
|
export type { OrderProduct } from './models/OrderProduct';
|
|
10
|
+
export type { OrderScan } from './models/OrderScan';
|
|
10
11
|
export type { OrderSeat } from './models/OrderSeat';
|
|
11
12
|
export type { OrderSummary } from './models/OrderSummary';
|
|
12
13
|
export type { Product } from './models/Product';
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OpenAPI = void 0;
|
|
4
4
|
exports.OpenAPI = {
|
|
5
5
|
BASE: 'https://api.drttix.com/shopper',
|
|
6
|
-
VERSION: '
|
|
6
|
+
VERSION: '20260629.1',
|
|
7
7
|
WITH_CREDENTIALS: false,
|
|
8
8
|
CREDENTIALS: 'include',
|
|
9
9
|
TOKEN: undefined,
|