@tiledev/sdk-apptile-live-selling 0.15.3 → 0.16.0-beta.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 +44 -5
- package/dist/checkoutRefused.d.ts +9 -0
- package/dist/checkoutRefused.d.ts.map +1 -0
- package/dist/checkoutRefused.js +16 -0
- package/dist/checkoutRefused.js.map +1 -0
- package/dist/clips.d.ts +4 -2
- package/dist/clips.d.ts.map +1 -1
- package/dist/clips.js +76 -15
- package/dist/clips.js.map +1 -1
- package/dist/giveawayPrizes.d.ts +20 -0
- package/dist/giveawayPrizes.d.ts.map +1 -0
- package/dist/giveawayPrizes.js +50 -0
- package/dist/giveawayPrizes.js.map +1 -0
- package/dist/index.d.ts +8 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -3
- package/dist/index.js.map +1 -1
- package/dist/livePages.d.ts +11 -1
- package/dist/livePages.d.ts.map +1 -1
- package/dist/livePages.js +29 -0
- package/dist/livePages.js.map +1 -1
- package/dist/pageOptions.d.ts +16 -0
- package/dist/pageOptions.d.ts.map +1 -1
- package/dist/pageOptions.js +4 -1
- package/dist/pageOptions.js.map +1 -1
- package/dist/pageTypes.d.ts +1 -1
- package/dist/pageTypes.d.ts.map +1 -1
- package/dist/react/LiveSellingProvider.d.ts +8 -2
- package/dist/react/LiveSellingProvider.d.ts.map +1 -1
- package/dist/react/LiveSellingProvider.js +10 -2
- package/dist/react/LiveSellingProvider.js.map +1 -1
- package/dist/react/index.d.ts +7 -6
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +7 -2
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.web.d.ts +6 -5
- package/dist/react/index.web.d.ts.map +1 -1
- package/dist/react/index.web.js +6 -2
- package/dist/react/index.web.js.map +1 -1
- package/dist/react/replayPlayer.d.ts +2 -0
- package/dist/react/replayPlayer.d.ts.map +1 -1
- package/dist/react/replayPlayer.js +11 -1
- package/dist/react/replayPlayer.js.map +1 -1
- package/dist/react/share.d.ts +22 -0
- package/dist/react/share.d.ts.map +1 -0
- package/dist/react/share.js +45 -0
- package/dist/react/share.js.map +1 -0
- package/dist/react/shopifyProviders.d.ts +10 -5
- package/dist/react/shopifyProviders.d.ts.map +1 -1
- package/dist/react/shopifyProviders.js +14 -4
- package/dist/react/shopifyProviders.js.map +1 -1
- package/dist/react/showPages.d.ts.map +1 -1
- package/dist/react/showPages.js +4 -2
- package/dist/react/showPages.js.map +1 -1
- package/dist/react/useAuctionBidGate.d.ts +8 -2
- package/dist/react/useAuctionBidGate.d.ts.map +1 -1
- package/dist/react/useAuctionBidGate.js +59 -2
- package/dist/react/useAuctionBidGate.js.map +1 -1
- package/dist/react/useAuctionWins.d.ts +5 -3
- package/dist/react/useAuctionWins.d.ts.map +1 -1
- package/dist/react/useAuctionWins.js +7 -2
- package/dist/react/useAuctionWins.js.map +1 -1
- package/dist/react/useClips.d.ts +7 -1
- package/dist/react/useClips.d.ts.map +1 -1
- package/dist/react/useClips.js +20 -7
- package/dist/react/useClips.js.map +1 -1
- package/dist/react/useFeaturedClip.d.ts +5 -1
- package/dist/react/useFeaturedClip.d.ts.map +1 -1
- package/dist/react/useFeaturedClip.js +6 -4
- package/dist/react/useFeaturedClip.js.map +1 -1
- package/dist/react/useGiveawayPrizes.d.ts +4 -0
- package/dist/react/useGiveawayPrizes.d.ts.map +1 -0
- package/dist/react/useGiveawayPrizes.js +58 -0
- package/dist/react/useGiveawayPrizes.js.map +1 -0
- package/dist/react/useLiveAuction.d.ts.map +1 -1
- package/dist/react/useLiveAuction.js +9 -5
- package/dist/react/useLiveAuction.js.map +1 -1
- package/dist/react/useLiveChat.d.ts +6 -1
- package/dist/react/useLiveChat.d.ts.map +1 -1
- package/dist/react/useLiveChat.js +31 -9
- package/dist/react/useLiveChat.js.map +1 -1
- package/dist/react/useLivePage.d.ts +12 -6
- package/dist/react/useLivePage.d.ts.map +1 -1
- package/dist/react/useLivePage.js +33 -18
- package/dist/react/useLivePage.js.map +1 -1
- package/dist/react/useLiveShop.d.ts +1 -8
- package/dist/react/useLiveShop.d.ts.map +1 -1
- package/dist/react/useLiveShop.js +8 -24
- package/dist/react/useLiveShop.js.map +1 -1
- package/dist/react/useReplayPage.d.ts +22 -3
- package/dist/react/useReplayPage.d.ts.map +1 -1
- package/dist/react/useReplayPage.js +102 -97
- package/dist/react/useReplayPage.js.map +1 -1
- package/dist/react/useSilentAuctionLot.d.ts +2 -0
- package/dist/react/useSilentAuctionLot.d.ts.map +1 -1
- package/dist/react/useSilentAuctionLot.js +17 -1
- package/dist/react/useSilentAuctionLot.js.map +1 -1
- package/dist/react/useSilentAuctionLots.d.ts +2 -0
- package/dist/react/useSilentAuctionLots.d.ts.map +1 -1
- package/dist/react/useSilentAuctionLots.js +1 -0
- package/dist/react/useSilentAuctionLots.js.map +1 -1
- package/dist/react/useSilentAuctionRounds.d.ts +2 -1
- package/dist/react/useSilentAuctionRounds.d.ts.map +1 -1
- package/dist/react/useSilentAuctionRounds.js +1 -1
- package/dist/react/useSilentAuctionRounds.js.map +1 -1
- package/dist/shopifyCommerce.d.ts +18 -5
- package/dist/shopifyCommerce.d.ts.map +1 -1
- package/dist/shopifyCommerce.js +42 -11
- package/dist/shopifyCommerce.js.map +1 -1
- package/dist/silentAuctionFeed.d.ts +2 -0
- package/dist/silentAuctionFeed.d.ts.map +1 -1
- package/dist/silentAuctionFeed.js +12 -2
- package/dist/silentAuctionFeed.js.map +1 -1
- package/dist/silentAuctionRules.d.ts +29 -0
- package/dist/silentAuctionRules.d.ts.map +1 -1
- package/dist/silentAuctionRules.js +53 -0
- package/dist/silentAuctionRules.js.map +1 -1
- package/dist/storeData.d.ts +45 -0
- package/dist/storeData.d.ts.map +1 -0
- package/dist/storeData.js +35 -0
- package/dist/storeData.js.map +1 -0
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/viewerRules.d.ts +39 -0
- package/dist/viewerRules.d.ts.map +1 -0
- package/dist/viewerRules.js +46 -0
- package/dist/viewerRules.js.map +1 -0
- package/dist/zegoEngine.d.ts.map +1 -1
- package/dist/zegoEngine.js +14 -7
- package/dist/zegoEngine.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSilentAuctionLots.js","sourceRoot":"","sources":["../../src/react/useSilentAuctionLots.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useSilentAuctionLots.js","sourceRoot":"","sources":["../../src/react/useSilentAuctionLots.ts"],"names":[],"mappings":";;AAkDA,oDAuDC;AAzGD;;;;;;;;GAQG;AACH,iCAAqD;AAErD,4DAAmJ;AACnJ,8DAA2F;AAC3F,+DAAuD;AAqCvD,SAAgB,oBAAoB,CAAiB,OAAoC;IACvF,MAAM,EAAE,KAAK,GAAG,QAAQ,EAAE,YAAY,EAAE,cAAc,GAAG,CAAC,EAAE,oBAAoB,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAC/I,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oCAAc,GAAE,CAAC;IACnC,MAAM,MAAM,GAAG,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,MAAM,IAAI,GAAG,IAAA,eAAO,EAClB,GAAG,EAAE,CAAC,IAAA,2CAAuB,EAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,EAClF,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAC5C,CAAC;IACF,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAA+B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IAElF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,iGAAiG;IACjG,kEAAkE;IAClE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,IAAI,CAAC,YAAY;YAAE,OAAO,SAAS,CAAC;QAC9C,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9F,OAAO,GAAG,EAAE;YACV,IAAI,KAAK;gBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC;IAEhD,MAAM,WAAW,GAAG,CAAC,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAA,eAAO,EACnB,GAAG,EAAE,CAAC,IAAA,8BAAS,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,EAAE,CAAC;IAC3E,wEAAwE;IACxE,uDAAuD;IACvD,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAClC,CAAC;IACF,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,IAAA,mCAAc,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAEpG,MAAM,MAAM,GACV,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;QACnD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ;YACzB,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY;gBACzC,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,OAAO,CAAC;IAElB,OAAO;QACL,MAAM;QACN,KAAK;QACL,QAAQ;QACR,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;QAChC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;KACvD,CAAC;AACJ,CAAC"}
|
|
@@ -8,7 +8,8 @@ export interface UseSilentAuctionRoundsOptions {
|
|
|
8
8
|
export interface SilentAuctionRounds {
|
|
9
9
|
status: 'loading' | 'failed' | 'empty' | 'ready';
|
|
10
10
|
rounds: SilentAuctionRound[];
|
|
11
|
-
|
|
11
|
+
/** Reads again. Resolves once the read has answered (0.16.0), so a pull can hold its spinner; stable. */
|
|
12
|
+
refresh(): Promise<void>;
|
|
12
13
|
}
|
|
13
14
|
export declare function useSilentAuctionRounds(options: UseSilentAuctionRoundsOptions): SilentAuctionRounds;
|
|
14
15
|
//# sourceMappingURL=useSilentAuctionRounds.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSilentAuctionRounds.d.ts","sourceRoot":"","sources":["../../src/react/useSilentAuctionRounds.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAIhE,MAAM,WAAW,6BAA6B;IAC5C,wCAAwC;IACxC,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC/B,8CAA8C;IAC9C,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IACjD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,OAAO,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"useSilentAuctionRounds.d.ts","sourceRoot":"","sources":["../../src/react/useSilentAuctionRounds.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAIhE,MAAM,WAAW,6BAA6B;IAC5C,wCAAwC;IACxC,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC/B,8CAA8C;IAC9C,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;IACjD,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAC7B,yGAAyG;IACzG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,mBAAmB,CA6BlG"}
|
|
@@ -39,6 +39,6 @@ function useSilentAuctionRounds(options) {
|
|
|
39
39
|
if (ready && screenOnShow)
|
|
40
40
|
void load();
|
|
41
41
|
}, [ready, screenOnShow, load]);
|
|
42
|
-
return { status, rounds, refresh:
|
|
42
|
+
return { status, rounds, refresh: load };
|
|
43
43
|
}
|
|
44
44
|
//# sourceMappingURL=useSilentAuctionRounds.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSilentAuctionRounds.js","sourceRoot":"","sources":["../../src/react/useSilentAuctionRounds.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useSilentAuctionRounds.js","sourceRoot":"","sources":["../../src/react/useSilentAuctionRounds.ts"],"names":[],"mappings":";;AA0BA,wDA6BC;AAvDD;;;;GAIG;AACH,iCAAiE;AAEjE,sCAAsC;AAEtC,sDAAmD;AACnD,+DAAuD;AAgBvD,SAAgB,sBAAsB,CAAC,OAAsC;IAC3E,MAAM,EAAE,MAAM,GAAG,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IACpD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,oCAAc,GAAE,CAAC;IACnC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAuB,EAAE,CAAC,CAAC;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,EAAgC,SAAS,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,IAAA,cAAM,EAAC,CAAC,CAAC,CAAC;IAE7B,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,KAAK,IAAI,EAAE;QAClC,MAAM,IAAI,GAAG,EAAE,UAAU,CAAC,OAAO,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,+BAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,IAAI,KAAK,UAAU,CAAC,OAAO;gBAAE,OAAO;YACxC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAI,IAAI,KAAK,UAAU,CAAC,OAAO;gBAAE,OAAO;YACxC,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,4CAA4C;YAC5C,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,mGAAmG;IACnG,kEAAkE;IAClE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,KAAK,IAAI,YAAY;YAAE,KAAK,IAAI,EAAE,CAAC;IACzC,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAC3C,CAAC"}
|
|
@@ -127,6 +127,8 @@ export interface ShopifyLiveCommerceOptions {
|
|
|
127
127
|
buyer: () => Promise<ShopifyBuyer | null>;
|
|
128
128
|
/** The products' photo size, passed to `products.byIds`. Omitted: the original photos. */
|
|
129
129
|
imageTransform?: ShopifyImageTransform;
|
|
130
|
+
/** The line attribute the store's cart transform reprices a won line by. Default `_winningBid`. 0.16.0. */
|
|
131
|
+
winningBidKey?: string;
|
|
130
132
|
/** More attributes for each win's line, after the adapter's own (a final-sale stamp, say). */
|
|
131
133
|
extraLineAttributes?: (win: AuctionWinItem) => ShopifyAttribute[];
|
|
132
134
|
/** More attributes for the cart, after the adapter's own (an attribution record, say). */
|
|
@@ -152,6 +154,13 @@ export declare const AUCTION_CART_SOURCE_TYPE = "auction";
|
|
|
152
154
|
export declare const WINNING_BID_KEY = "_winningBid";
|
|
153
155
|
/** The line attribute that keeps two identical wins on two lines. */
|
|
154
156
|
export declare const WIN_INDEX_KEY = "_winIndex";
|
|
157
|
+
/** The line attribute a silent auction's win carries its lot number in (0.16.0, the store-data standard). */
|
|
158
|
+
export declare const LOT_NUMBER_KEY = "_lotNumber";
|
|
159
|
+
/**
|
|
160
|
+
* The cart's `auction_id` (0.16.0, the store-data standard): every show the cart's lines were won on, in
|
|
161
|
+
* order, comma-joined with no space, so the order webhook clears each. None: the tab's `fallback`.
|
|
162
|
+
*/
|
|
163
|
+
export declare function auctionIdsOf(wins: readonly Pick<AuctionWinItem, 'streamingId'>[], fallback: string): string;
|
|
155
164
|
/** A Shopify product as the session's thinner shape, with the product itself kept on `raw`. */
|
|
156
165
|
export declare function liveProductFromShopify(product: ShopifyProductForLive): LiveProduct<ShopifyProductForLive>;
|
|
157
166
|
/**
|
|
@@ -169,14 +178,18 @@ export declare function chargedVariantId(product: ShopifyProductForLive | undefi
|
|
|
169
178
|
* - **`createAuctionCheckout`:** a cart of its own for the wins, never the shopping cart, so a stepper
|
|
170
179
|
* can't change a settled price.
|
|
171
180
|
* - **Each win is a line of one,** stamped for the store's cart transform: `_winningBid` (the bid it
|
|
172
|
-
* reprices the line to) or `prizeWriteKey` (a prize), plus `_winIndex`, which stops
|
|
173
|
-
* two identical wins into one line (the same lot won twice must cost twice)
|
|
181
|
+
* reprices the line to; `winningBidKey`) or `prizeWriteKey` (a prize), plus `_winIndex`, which stops
|
|
182
|
+
* Shopify merging two identical wins into one line (the same lot won twice must cost twice), and a
|
|
183
|
+
* silent auction's `_lotNumber`.
|
|
174
184
|
* - **The giveaway discount codes** go on the cart.
|
|
175
|
-
* - **The cart says what it is:** `source_name`, `source_type: "auction"` and `auction_id` (
|
|
176
|
-
*
|
|
177
|
-
* leaves the shopper blocked from bidding after paying.
|
|
185
|
+
* - **The cart says what it is:** `source_name`, `source_type: "auction"` and `auction_id` (every show
|
|
186
|
+
* its lines were won on, comma-joined: `auctionIdsOf`), which the order webhook matches to clear the
|
|
187
|
+
* winner's record. A checkout it can't match leaves the shopper blocked from bidding after paying.
|
|
178
188
|
* - **The buyer** is attached when there is one, so the checkout is theirs; a guest cart when there
|
|
179
189
|
* isn't, or when reading it fails.
|
|
190
|
+
* - **Refused, never guessed** (0.16.0, `CheckoutRefusedError`, as 33.2.0): a won item that can't be
|
|
191
|
+
* bought any more (it would be left off, and its show still settled), a win with no winning price
|
|
192
|
+
* above 0, or no auction id to settle; its message tells the shopper what to do.
|
|
180
193
|
* - **`commentLinkCard`** (0.12.0): a store link in a comment as a card, from `products.byHandle` or
|
|
181
194
|
* `collections.byHandle`.
|
|
182
195
|
* - **A product link:** its title, photo and lowest price; never sold out, since a whole product
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shopifyCommerce.d.ts","sourceRoot":"","sources":["../src/shopifyCommerce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"shopifyCommerce.d.ts","sourceRoot":"","sources":["../src/shopifyCommerce.ts"],"names":[],"mappings":"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"}
|
package/dist/shopifyCommerce.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WIN_INDEX_KEY = exports.WINNING_BID_KEY = exports.AUCTION_CART_SOURCE_TYPE = void 0;
|
|
3
|
+
exports.LOT_NUMBER_KEY = exports.WIN_INDEX_KEY = exports.WINNING_BID_KEY = exports.AUCTION_CART_SOURCE_TYPE = void 0;
|
|
4
|
+
exports.auctionIdsOf = auctionIdsOf;
|
|
4
5
|
exports.liveProductFromShopify = liveProductFromShopify;
|
|
5
6
|
exports.chargedVariantId = chargedVariantId;
|
|
6
7
|
exports.createShopifyLiveCommerce = createShopifyLiveCommerce;
|
|
7
8
|
const shopifyIds_1 = require("./shopifyIds");
|
|
9
|
+
const checkoutRefused_1 = require("./checkoutRefused");
|
|
8
10
|
/** A comment card's photo when the app sets none: drawn at 44pt, so 120px covers a 2x screen. */
|
|
9
11
|
const COMMENT_CARD_IMAGE = { maxWidth: 120, maxHeight: 120 };
|
|
10
12
|
/** Shopify names a single-variant product's only variant "Default Title"; showing that is noise. */
|
|
@@ -18,6 +20,16 @@ exports.AUCTION_CART_SOURCE_TYPE = 'auction';
|
|
|
18
20
|
exports.WINNING_BID_KEY = '_winningBid';
|
|
19
21
|
/** The line attribute that keeps two identical wins on two lines. */
|
|
20
22
|
exports.WIN_INDEX_KEY = '_winIndex';
|
|
23
|
+
/** The line attribute a silent auction's win carries its lot number in (0.16.0, the store-data standard). */
|
|
24
|
+
exports.LOT_NUMBER_KEY = '_lotNumber';
|
|
25
|
+
/**
|
|
26
|
+
* The cart's `auction_id` (0.16.0, the store-data standard): every show the cart's lines were won on, in
|
|
27
|
+
* order, comma-joined with no space, so the order webhook clears each. None: the tab's `fallback`.
|
|
28
|
+
*/
|
|
29
|
+
function auctionIdsOf(wins, fallback) {
|
|
30
|
+
const ids = [...new Set(wins.map((win) => { var _a; return (_a = win.streamingId) === null || _a === void 0 ? void 0 : _a.trim(); }).filter((id) => !!id))];
|
|
31
|
+
return ids.length > 0 ? ids.join(',') : fallback;
|
|
32
|
+
}
|
|
21
33
|
/** A Shopify product as the session's thinner shape, with the product itself kept on `raw`. */
|
|
22
34
|
function liveProductFromShopify(product) {
|
|
23
35
|
var _a, _b;
|
|
@@ -67,14 +79,18 @@ function chargedVariantId(product, win) {
|
|
|
67
79
|
* - **`createAuctionCheckout`:** a cart of its own for the wins, never the shopping cart, so a stepper
|
|
68
80
|
* can't change a settled price.
|
|
69
81
|
* - **Each win is a line of one,** stamped for the store's cart transform: `_winningBid` (the bid it
|
|
70
|
-
* reprices the line to) or `prizeWriteKey` (a prize), plus `_winIndex`, which stops
|
|
71
|
-
* two identical wins into one line (the same lot won twice must cost twice)
|
|
82
|
+
* reprices the line to; `winningBidKey`) or `prizeWriteKey` (a prize), plus `_winIndex`, which stops
|
|
83
|
+
* Shopify merging two identical wins into one line (the same lot won twice must cost twice), and a
|
|
84
|
+
* silent auction's `_lotNumber`.
|
|
72
85
|
* - **The giveaway discount codes** go on the cart.
|
|
73
|
-
* - **The cart says what it is:** `source_name`, `source_type: "auction"` and `auction_id` (
|
|
74
|
-
*
|
|
75
|
-
* leaves the shopper blocked from bidding after paying.
|
|
86
|
+
* - **The cart says what it is:** `source_name`, `source_type: "auction"` and `auction_id` (every show
|
|
87
|
+
* its lines were won on, comma-joined: `auctionIdsOf`), which the order webhook matches to clear the
|
|
88
|
+
* winner's record. A checkout it can't match leaves the shopper blocked from bidding after paying.
|
|
76
89
|
* - **The buyer** is attached when there is one, so the checkout is theirs; a guest cart when there
|
|
77
90
|
* isn't, or when reading it fails.
|
|
91
|
+
* - **Refused, never guessed** (0.16.0, `CheckoutRefusedError`, as 33.2.0): a won item that can't be
|
|
92
|
+
* bought any more (it would be left off, and its show still settled), a win with no winning price
|
|
93
|
+
* above 0, or no auction id to settle; its message tells the shopper what to do.
|
|
78
94
|
* - **`commentLinkCard`** (0.12.0): a store link in a comment as a card, from `products.byHandle` or
|
|
79
95
|
* `collections.byHandle`.
|
|
80
96
|
* - **A product link:** its title, photo and lowest price; never sold out, since a whole product
|
|
@@ -86,7 +102,7 @@ function chargedVariantId(product, win) {
|
|
|
86
102
|
* - **Null** for a handle the store doesn't know. A failed read throws, so it is asked again.
|
|
87
103
|
*/
|
|
88
104
|
function createShopifyLiveCommerce(options) {
|
|
89
|
-
const { shopify, cartSourceName, prizeWriteKey, buyer, imageTransform, extraLineAttributes, extraCartAttributes, commentLinkCardImage = COMMENT_CARD_IMAGE, } = options;
|
|
105
|
+
const { shopify, cartSourceName, prizeWriteKey, buyer, imageTransform, extraLineAttributes, extraCartAttributes, commentLinkCardImage = COMMENT_CARD_IMAGE, winningBidKey = exports.WINNING_BID_KEY, } = options;
|
|
90
106
|
async function productsByIds(storeProductIds) {
|
|
91
107
|
if (storeProductIds.length === 0)
|
|
92
108
|
return [];
|
|
@@ -100,10 +116,20 @@ function createShopifyLiveCommerce(options) {
|
|
|
100
116
|
const productsById = new Map(products.map((product) => [(0, shopifyIds_1.bareId)(product.id), product]));
|
|
101
117
|
const discountCodes = new Set();
|
|
102
118
|
const lines = [];
|
|
119
|
+
/** The wins that became lines: only their shows are settled by this cart. */
|
|
120
|
+
const charged = [];
|
|
103
121
|
wins.forEach((win, index) => {
|
|
104
|
-
const
|
|
122
|
+
const product = productsById.get((0, shopifyIds_1.bareId)(win.productGid));
|
|
123
|
+
const name = (product === null || product === void 0 ? void 0 : product.title) ? `“${product.title}”` : 'One of your lots';
|
|
124
|
+
const variantId = chargedVariantId(product, win);
|
|
125
|
+
// Never left out quietly: the cart would settle its show, and the lot would be marked paid unpaid.
|
|
105
126
|
if (!variantId)
|
|
106
|
-
|
|
127
|
+
throw new checkoutRefused_1.CheckoutRefusedError(`${name} is no longer available to buy. Please contact support to pay for it.`);
|
|
128
|
+
// A price of 0 would be charged as 0 (or, without the key, at the catalogue price).
|
|
129
|
+
if (!win.isGiveaway && !(Number.isFinite(win.winningBid) && win.winningBid > 0)) {
|
|
130
|
+
throw new checkoutRefused_1.CheckoutRefusedError(`We could not confirm the winning price for ${name}. Please contact support before paying so you are not charged the wrong amount.`);
|
|
131
|
+
}
|
|
132
|
+
charged.push(win);
|
|
107
133
|
if (win.discountCode)
|
|
108
134
|
discountCodes.add(win.discountCode);
|
|
109
135
|
lines.push({
|
|
@@ -112,14 +138,19 @@ function createShopifyLiveCommerce(options) {
|
|
|
112
138
|
attributes: [
|
|
113
139
|
win.isGiveaway
|
|
114
140
|
? { key: prizeWriteKey, value: 'true' }
|
|
115
|
-
: { key:
|
|
141
|
+
: { key: winningBidKey, value: String(win.winningBid) },
|
|
116
142
|
{ key: exports.WIN_INDEX_KEY, value: String(index) },
|
|
143
|
+
...(win.lotNumber != null ? [{ key: exports.LOT_NUMBER_KEY, value: String(win.lotNumber) }] : []),
|
|
117
144
|
...(extraLineAttributes ? extraLineAttributes(win) : []),
|
|
118
145
|
],
|
|
119
146
|
});
|
|
120
147
|
});
|
|
121
148
|
if (lines.length === 0)
|
|
122
149
|
throw new Error('None of the won items can be sold');
|
|
150
|
+
// No auction to settle: the order webhook could never mark these lots paid.
|
|
151
|
+
const auctionIds = auctionIdsOf(charged, auctionId.trim());
|
|
152
|
+
if (!auctionIds)
|
|
153
|
+
throw new checkoutRefused_1.CheckoutRefusedError('We could not tell which auction this is for. Please reopen the auction cart and try again.');
|
|
123
154
|
const buyerIdentity = await buyer().catch(() => null);
|
|
124
155
|
const cart = await shopify.cart.create({
|
|
125
156
|
lines,
|
|
@@ -127,7 +158,7 @@ function createShopifyLiveCommerce(options) {
|
|
|
127
158
|
attributes: [
|
|
128
159
|
{ key: 'source_name', value: cartSourceName },
|
|
129
160
|
{ key: 'source_type', value: exports.AUCTION_CART_SOURCE_TYPE },
|
|
130
|
-
{ key: 'auction_id', value:
|
|
161
|
+
{ key: 'auction_id', value: auctionIds },
|
|
131
162
|
...(extraCartAttributes ? extraCartAttributes(lines) : []),
|
|
132
163
|
],
|
|
133
164
|
...(buyerIdentity ? { buyerIdentity } : {}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shopifyCommerce.js","sourceRoot":"","sources":["../src/shopifyCommerce.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"shopifyCommerce.js","sourceRoot":"","sources":["../src/shopifyCommerce.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ export interface SilentAuctionFeedState<TRaw = unknown> {
|
|
|
15
15
|
readingAhead: boolean;
|
|
16
16
|
/** The service listed lots that aren't read yet. */
|
|
17
17
|
hasMore: boolean;
|
|
18
|
+
/** The last refresh or poll failed over lots already shown: they stay, but may be out of date (0.16.0). */
|
|
19
|
+
refreshFailed: boolean;
|
|
18
20
|
}
|
|
19
21
|
export interface SilentAuctionFeedOptions {
|
|
20
22
|
/** The service's `current` list (default) or its `upcoming` one. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentAuctionFeed.d.ts","sourceRoot":"","sources":["../src/silentAuctionFeed.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAU,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,6BAA6B;AAC7B,MAAM,WAAW,iBAAiB,CAAC,IAAI,GAAG,OAAO;IAC/C,GAAG,EAAE,gBAAgB,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB,CAAC,IAAI,GAAG,OAAO;IACpD,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;IACjC,8GAA8G;IAC9G,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IAChD,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,mGAAmG;IACnG,YAAY,EAAE,OAAO,CAAC;IACtB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"silentAuctionFeed.d.ts","sourceRoot":"","sources":["../src/silentAuctionFeed.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAU,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGrE,6BAA6B;AAC7B,MAAM,WAAW,iBAAiB,CAAC,IAAI,GAAG,OAAO;IAC/C,GAAG,EAAE,gBAAgB,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB,CAAC,IAAI,GAAG,OAAO;IACpD,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;IACjC,8GAA8G;IAC9G,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;IAChD,oCAAoC;IACpC,UAAU,EAAE,OAAO,CAAC;IACpB,mGAAmG;IACnG,YAAY,EAAE,OAAO,CAAC;IACtB,oDAAoD;IACpD,OAAO,EAAE,OAAO,CAAC;IACjB,2GAA2G;IAC3G,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IAChC,qGAAqG;IACrG,SAAS,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC9C,2GAA2G;IAC3G,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB,CAAC,IAAI,GAAG,OAAO;IAC/C,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;IACzC,uDAAuD;IACvD,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5C,uGAAuG;IACvG,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,uEAAuE;IACvE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,iFAAiF;IACjF,IAAI,IAAI,IAAI,CAAC;CACd;AAeD,wBAAgB,uBAAuB,CAAC,IAAI,GAAG,OAAO,EAAE,OAAO,GAAE,wBAA6B,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAgMvH"}
|
|
@@ -21,7 +21,7 @@ exports.createSilentAuctionFeed = createSilentAuctionFeed;
|
|
|
21
21
|
const client_1 = require("./client");
|
|
22
22
|
const silentAuctionRules_1 = require("./silentAuctionRules");
|
|
23
23
|
const silentAuctions_1 = require("./silentAuctions");
|
|
24
|
-
const IDLE = { items: [], status: 'idle', refreshing: false, readingAhead: false, hasMore: false };
|
|
24
|
+
const IDLE = { items: [], status: 'idle', refreshing: false, readingAhead: false, hasMore: false, refreshFailed: false };
|
|
25
25
|
/** A product can be bought: one of its variants can be sold (a product with no variants listed counts). */
|
|
26
26
|
function inStock(product) {
|
|
27
27
|
return product.variants.length === 0 || product.variants.some((variant) => variant.available);
|
|
@@ -123,6 +123,11 @@ function createSilentAuctionFeed(options = {}) {
|
|
|
123
123
|
if (!current())
|
|
124
124
|
return;
|
|
125
125
|
(0, client_1.getLogger)().error(caught, { at: 'silentAuctionFeed.load', filter });
|
|
126
|
+
// A refresh over lots already shown keeps them, and says they may be out of date.
|
|
127
|
+
if (state.items.length > 0) {
|
|
128
|
+
set({ refreshFailed: true });
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
126
131
|
consumed = 0;
|
|
127
132
|
total = 0;
|
|
128
133
|
set({ items: [], status: 'failed' });
|
|
@@ -130,6 +135,7 @@ function createSilentAuctionFeed(options = {}) {
|
|
|
130
135
|
}
|
|
131
136
|
if (!current())
|
|
132
137
|
return;
|
|
138
|
+
set({ refreshFailed: false });
|
|
133
139
|
const sorted = sortForPages(lots, pageOrder);
|
|
134
140
|
if (sorted.length === 0) {
|
|
135
141
|
consumed = 0;
|
|
@@ -180,12 +186,16 @@ function createSilentAuctionFeed(options = {}) {
|
|
|
180
186
|
lots = await silentAuctions_1.silentAuctions.lots(filter);
|
|
181
187
|
}
|
|
182
188
|
catch (caught) {
|
|
183
|
-
// A failed tick keeps what is shown.
|
|
189
|
+
// A failed tick keeps what is shown, and says it may be out of date.
|
|
184
190
|
(0, client_1.getLogger)().error(caught, { at: 'silentAuctionFeed.poll', filter });
|
|
191
|
+
if (current() && state.items.length > 0)
|
|
192
|
+
set({ refreshFailed: true });
|
|
185
193
|
return;
|
|
186
194
|
}
|
|
187
195
|
if (!current())
|
|
188
196
|
return;
|
|
197
|
+
if (state.refreshFailed)
|
|
198
|
+
set({ refreshFailed: false });
|
|
189
199
|
const sorted = sortForPages(lots, pageOrder);
|
|
190
200
|
const shown = Math.max(consumed, pageSize);
|
|
191
201
|
const window = sorted.slice(0, shown);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentAuctionFeed.js","sourceRoot":"","sources":["../src/silentAuctionFeed.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"silentAuctionFeed.js","sourceRoot":"","sources":["../src/silentAuctionFeed.ts"],"names":[],"mappings":";;AAkFA,0DAgMC;AAlRD;;;;;;;;;;;;;;;;GAgBG;AACH,qCAAkD;AAElD,6DAAqE;AACrE,qDAAkD;AAiDlD,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAW,CAAC;AAElI,2GAA2G;AAC3G,SAAS,OAAO,CAAC,OAA6B;IAC5C,OAAO,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAChG,CAAC;AAED,SAAS,YAAY,CAAC,IAAwB,EAAE,KAA4C;IAC1F,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC3D,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,eAAC,OAAA,CAAC,MAAA,CAAC,CAAC,KAAK,CAAC,mCAAI,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAA,CAAC,CAAC,KAAK,CAAC,mCAAI,MAAM,CAAC,gBAAgB,CAAC,CAAA,EAAA,CAAC,CAAC;AACpH,CAAC;AAED,SAAgB,uBAAuB,CAAiB,UAAoC,EAAE;IAC5F,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,SAAS,GAAG,IAAI,EAAE,WAAW,GAAG,KAAK,EAAE,QAAQ,GAAG,EAAE,EAAE,kBAAkB,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE/I,IAAI,KAAK,GAAiC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IACjE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAc,CAAC;IACxC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,iFAAiF;IACjF,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,gGAAgG;IAChG,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,8CAA8C;IAC9C,IAAI,aAAa,GAAG,KAAK,CAAC;IAE1B,SAAS,GAAG,CAAC,IAA2C;QACtD,KAAK,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzD,KAAK,MAAM,QAAQ,IAAI,SAAS;YAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,gGAAgG;IAChG,KAAK,UAAU,YAAY,CAAC,IAAwB;QAClD,MAAM,QAAQ,GAAG,IAAA,oBAAW,GAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,cAAwB,CAAC,CAAC,CAAC,CAAC;QAChI,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC7C,IAAI,QAAQ,GAA2B,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,4BAA4B,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;YACnF,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;QACnF,MAAM,KAAK,GAA8B,EAAE,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9E,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;gBAAE,SAAS;YAChD,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAA4B,EAAE,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,MAA0B;QAC9D,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,GAAG,GAAG,EAAE,YAAY,CAAC;QAC3B,aAAa,GAAG,IAAI,CAAC;QACrB,GAAG,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC;YACH,OAAO,UAAU,KAAK,IAAI,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,QAAQ,CAAC;gBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC;gBACjD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,UAAU,KAAK,IAAI;oBAAE,OAAO;gBAChC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC9B,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,YAAY,KAAK,GAAG,EAAE,CAAC;gBACzB,aAAa,GAAG,KAAK,CAAC;gBACtB,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,UAAU,IAAI,CAAC,EAAE,aAAa,GAAG,KAAK,KAAkC,EAAE;QAC7E,MAAM,IAAI,GAAG,EAAE,UAAU,CAAC;QAC1B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC;QAC1C,UAAU,GAAG,IAAI,CAAC;QAClB,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;aACvE,IAAI,aAAa;YAAE,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE;gBAAE,OAAO;YACvB,UAAU,GAAG,KAAK,CAAC;YACnB,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACrF,CAAC,CAAC;QAEF,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;YACrB,IAAI,IAAwB,CAAC;YAC7B,IAAI,CAAC;gBACH,IAAI,GAAG,MAAM,+BAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,EAAE;oBAAE,OAAO;gBACvB,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,CAAC;gBACpE,kFAAkF;gBAClF,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBACD,QAAQ,GAAG,CAAC,CAAC;gBACb,KAAK,GAAG,CAAC,CAAC;gBACV,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;gBACrC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,OAAO,EAAE;gBAAE,OAAO;YACvB,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACxB,QAAQ,GAAG,CAAC,CAAC;gBACb,KAAK,GAAG,CAAC,CAAC;gBACV,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,uFAAuF;YACvF,IAAI,KAAK,GAA8B,EAAE,CAAC;YAC1C,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,OAAO,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAClD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAAC,CAAC;gBACjD,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/C,IAAI,CAAC,OAAO,EAAE;oBAAE,OAAO;gBACvB,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC;YACtB,CAAC;YACD,QAAQ,GAAG,IAAI,CAAC;YAChB,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;YACtB,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAChC,wEAAwE;YACxE,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,IAAI,MAAiD,CAAC;QACtD,MAAM,SAAS,GAAG,IAAI,OAAO,CAAW,CAAC,OAAO,EAAE,EAAE;YAClD,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,CAAC;QACnE,CAAC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,MAAe,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACpD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,OAAO,EAAE,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7G,MAAM,IAAI,CAAC;YACX,8FAA8F;YAC9F,IAAI,OAAO,EAAE,IAAI,CAAC,aAAa;gBAAE,GAAG,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,YAAY,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,EAAE,CAAC;IACX,CAAC;IAED,KAAK,UAAU,IAAI;QACjB,IAAI,UAAU,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM;YAAE,OAAO;QACxE,MAAM,IAAI,GAAG,UAAU,CAAC;QACxB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC;QACzD,IAAI,IAAwB,CAAC;QAC7B,IAAI,CAAC;YACH,IAAI,GAAG,MAAM,+BAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,qEAAqE;YACrE,IAAA,kBAAS,GAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,IAAI,OAAO,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YACtE,OAAO;QACT,CAAC;QACD,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO;QACvB,IAAI,KAAK,CAAC,aAAa;YAAE,GAAG,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;QAClD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAA,2BAAM,EAAC,GAAG,CAAC,CAAC;YACxB,IAAI,GAAG;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACzC,MAAM,GAAG,GAAG,IAAA,2BAAM,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,2BAAM,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAA,2BAAM,EAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,OAAO,EAAE;YAAE,OAAO;QACvB,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;QACtB,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACzD,IAAI,QAAQ,GAAG,KAAK;YAAE,KAAK,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAED,SAAS,IAAI;QACX,UAAU,IAAI,CAAC,CAAC;QAChB,UAAU,GAAG,KAAK,CAAC;QACnB,YAAY,IAAI,CAAC,CAAC;QAClB,aAAa,GAAG,KAAK,CAAC;QACtB,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,KAAK;QACrB,SAAS,CAAC,QAAQ;YAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI;QACJ,IAAI;QACJ,IAAI;KACL,CAAC;AACJ,CAAC"}
|
|
@@ -124,12 +124,40 @@ export declare function myBidsTabs<T extends {
|
|
|
124
124
|
won: T[];
|
|
125
125
|
lost: T[];
|
|
126
126
|
};
|
|
127
|
+
/** A product read with `AUCTION_METAFIELDS` (`storeData.ts`; the fields used here). */
|
|
128
|
+
export interface ProductWithAuctionGates {
|
|
129
|
+
metafields?: Record<string, string> | null;
|
|
130
|
+
/** sdk-shopify 0.23: what the read asked for. Without the auction metafields here, the gates aren't known. */
|
|
131
|
+
metafieldsRead?: readonly string[] | null;
|
|
132
|
+
variantMetafieldsRead?: readonly string[] | null;
|
|
133
|
+
variants?: ReadonlyArray<{
|
|
134
|
+
id: string;
|
|
135
|
+
metafields?: Record<string, string> | null;
|
|
136
|
+
}> | null;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* `productPageBuyBar`'s auction inputs for the chosen variant (0.16.0), from the auction metafields: managed
|
|
140
|
+
* when any of them is set; winners on the product or the variant; the variant's `allowedQty` (null when
|
|
141
|
+
* absent or not a number, which is not 0); sold out when that is 0. Sold out is the round's, not the
|
|
142
|
+
* store's stock: a variant out of stock in Shopify still goes back to a normal sale once its round closes.
|
|
143
|
+
*
|
|
144
|
+
* Needs the product page's own read with `AUCTION_METAFIELDS` (sdk-shopify 0.23 `useProductPage(handle,
|
|
145
|
+
* { metafields, variantMetafields })`): a copy read without them (a card's, the device's) gives
|
|
146
|
+
* `auctionMetafieldsRead` false, and the page draws neither bar until the page's read lands, rather than
|
|
147
|
+
* offer an auction lot at its catalogue price.
|
|
148
|
+
*/
|
|
149
|
+
export declare function productAuctionGates(product: ProductWithAuctionGates | null | undefined, variantId: string | null | undefined): Pick<ProductPageBuyBarInput, 'auctionMetafieldsRead' | 'auctionManaged' | 'productHasWinner' | 'variantHasWinner' | 'allowedQty' | 'soldOut'>;
|
|
127
150
|
/** What the product page knows when it decides its bottom bar. */
|
|
128
151
|
export interface ProductPageBuyBarInput {
|
|
129
152
|
/** The product's lot, or null when it has never been in a round. */
|
|
130
153
|
lot: Pick<SilentAuctionLot, 'startsAt' | 'endsAt'> | null;
|
|
131
154
|
/** Whether the lot read has answered. `failed` only before any answer. */
|
|
132
155
|
lotStatus: 'loading' | 'ready' | 'failed';
|
|
156
|
+
/**
|
|
157
|
+
* The product was read with the auction metafields (`productAuctionGates` says, 0.16.0). False: neither bar
|
|
158
|
+
* shows until it is. Left out (an app passing its own inputs): read.
|
|
159
|
+
*/
|
|
160
|
+
auctionMetafieldsRead?: boolean;
|
|
133
161
|
/** The store marks this product as a lot (its `auction.winners` or `auction.allowedQty` metafields). */
|
|
134
162
|
auctionManaged: boolean;
|
|
135
163
|
/** A winner is recorded on the product itself. */
|
|
@@ -138,6 +166,7 @@ export interface ProductPageBuyBarInput {
|
|
|
138
166
|
variantHasWinner: boolean;
|
|
139
167
|
/** The chosen variant's `auction.allowedQty`; null when it has none (not the same as 0). */
|
|
140
168
|
allowedQty: number | null;
|
|
169
|
+
/** The round permits no more of the chosen variant (`allowedQty` 0); not the store's stock. */
|
|
141
170
|
soldOut: boolean;
|
|
142
171
|
nowMs: number;
|
|
143
172
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silentAuctionRules.d.ts","sourceRoot":"","sources":["../src/silentAuctionRules.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"silentAuctionRules.d.ts","sourceRoot":"","sources":["../src/silentAuctionRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ exports.lotStatus = lotStatus;
|
|
|
16
16
|
exports.orderLots = orderLots;
|
|
17
17
|
exports.upcomingGroups = upcomingGroups;
|
|
18
18
|
exports.myBidsTabs = myBidsTabs;
|
|
19
|
+
exports.productAuctionGates = productAuctionGates;
|
|
19
20
|
exports.productPageBuyBar = productPageBuyBar;
|
|
20
21
|
exports.bidRecordEntries = bidRecordEntries;
|
|
21
22
|
exports.bidRecordEntry = bidRecordEntry;
|
|
@@ -30,6 +31,7 @@ exports.toSilentAuctionRound = toSilentAuctionRound;
|
|
|
30
31
|
* strings and epoch seconds), so every reader goes through `toSilentAuctionLot`.
|
|
31
32
|
*/
|
|
32
33
|
const shopifyIds_1 = require("./shopifyIds");
|
|
34
|
+
const storeData_1 = require("./storeData");
|
|
33
35
|
/** Epoch ms. 10-digit numbers are seconds, 13-digit ms; strings may be either, or ISO. */
|
|
34
36
|
function toMs(value) {
|
|
35
37
|
if (value === undefined || value === null || value === '')
|
|
@@ -280,6 +282,54 @@ function myBidsTabs(items, customerId, nowMs) {
|
|
|
280
282
|
tabs.lost.sort((a, b) => end(b) - end(a));
|
|
281
283
|
return tabs;
|
|
282
284
|
}
|
|
285
|
+
/** Whether `product` was read with every auction metafield (the product page's own read), so its gates can be trusted. */
|
|
286
|
+
function readWithAuctionMetafields(product) {
|
|
287
|
+
const ids = (list) => list.map((m) => `${m.namespace}.${m.key}`);
|
|
288
|
+
return (!!product &&
|
|
289
|
+
ids(storeData_1.AUCTION_METAFIELDS.product).every((id) => { var _a; return (_a = product.metafieldsRead) === null || _a === void 0 ? void 0 : _a.includes(id); }) &&
|
|
290
|
+
ids(storeData_1.AUCTION_METAFIELDS.variant).every((id) => { var _a; return (_a = product.variantMetafieldsRead) === null || _a === void 0 ? void 0 : _a.includes(id); }));
|
|
291
|
+
}
|
|
292
|
+
/** A winners metafield names someone: a non-empty JSON list, or other truthy JSON. */
|
|
293
|
+
function recordsAWinner(raw) {
|
|
294
|
+
if (!raw)
|
|
295
|
+
return false;
|
|
296
|
+
try {
|
|
297
|
+
const parsed = JSON.parse(raw);
|
|
298
|
+
return Array.isArray(parsed) ? parsed.length > 0 : !!parsed;
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* `productPageBuyBar`'s auction inputs for the chosen variant (0.16.0), from the auction metafields: managed
|
|
306
|
+
* when any of them is set; winners on the product or the variant; the variant's `allowedQty` (null when
|
|
307
|
+
* absent or not a number, which is not 0); sold out when that is 0. Sold out is the round's, not the
|
|
308
|
+
* store's stock: a variant out of stock in Shopify still goes back to a normal sale once its round closes.
|
|
309
|
+
*
|
|
310
|
+
* Needs the product page's own read with `AUCTION_METAFIELDS` (sdk-shopify 0.23 `useProductPage(handle,
|
|
311
|
+
* { metafields, variantMetafields })`): a copy read without them (a card's, the device's) gives
|
|
312
|
+
* `auctionMetafieldsRead` false, and the page draws neither bar until the page's read lands, rather than
|
|
313
|
+
* offer an auction lot at its catalogue price.
|
|
314
|
+
*/
|
|
315
|
+
function productAuctionGates(product, variantId) {
|
|
316
|
+
var _a, _b, _c, _d;
|
|
317
|
+
const productWinners = (_a = product === null || product === void 0 ? void 0 : product.metafields) === null || _a === void 0 ? void 0 : _a['auction.winners'];
|
|
318
|
+
const variants = (_b = product === null || product === void 0 ? void 0 : product.variants) !== null && _b !== void 0 ? _b : [];
|
|
319
|
+
const touched = productWinners != null ||
|
|
320
|
+
variants.some((v) => { var _a, _b; return ((_a = v.metafields) === null || _a === void 0 ? void 0 : _a['auction.winners']) != null || ((_b = v.metafields) === null || _b === void 0 ? void 0 : _b['auction.allowedQty']) != null; });
|
|
321
|
+
const chosen = variantId ? variants.find((v) => v.id === variantId) : undefined;
|
|
322
|
+
const qtyRaw = (_c = chosen === null || chosen === void 0 ? void 0 : chosen.metafields) === null || _c === void 0 ? void 0 : _c['auction.allowedQty'];
|
|
323
|
+
const qty = qtyRaw != null && qtyRaw.trim() !== '' && Number.isFinite(Number(qtyRaw)) ? Number(qtyRaw) : null;
|
|
324
|
+
return {
|
|
325
|
+
auctionMetafieldsRead: readWithAuctionMetafields(product),
|
|
326
|
+
auctionManaged: touched,
|
|
327
|
+
productHasWinner: recordsAWinner(productWinners),
|
|
328
|
+
variantHasWinner: recordsAWinner((_d = chosen === null || chosen === void 0 ? void 0 : chosen.metafields) === null || _d === void 0 ? void 0 : _d['auction.winners']),
|
|
329
|
+
allowedQty: qty,
|
|
330
|
+
soldOut: qty === 0,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
283
333
|
/**
|
|
284
334
|
* Which bottom bar the product page draws: the bid console, Add to Cart, or neither. They aren't
|
|
285
335
|
* opposites: before a round opens neither shows; a round that closed with stock left goes back to a
|
|
@@ -289,6 +339,9 @@ function myBidsTabs(items, customerId, nowMs) {
|
|
|
289
339
|
*/
|
|
290
340
|
function productPageBuyBar(input) {
|
|
291
341
|
const { lot, lotStatus, auctionManaged, productHasWinner, variantHasWinner, allowedQty, soldOut, nowMs } = input;
|
|
342
|
+
// The auction metafields not read yet: an auction lot must not be offered at its catalogue price.
|
|
343
|
+
if (input.auctionMetafieldsRead === false)
|
|
344
|
+
return { console: false, addToCart: false };
|
|
292
345
|
const winnerBlocks = (variantHasWinner || productHasWinner) && (allowedQty !== null && allowedQty !== void 0 ? allowedQty : 0) <= 0;
|
|
293
346
|
const unknown = lotStatus === 'failed' || (lotStatus === 'loading' && auctionManaged);
|
|
294
347
|
if (unknown && !lot)
|