@tiledev/sdk-apptile-live-selling 0.8.0 → 0.9.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 +443 -34
- package/dist/auctionComments.d.ts +25 -0
- package/dist/auctionComments.d.ts.map +1 -0
- package/dist/auctionComments.js +28 -0
- package/dist/auctionComments.js.map +1 -0
- package/dist/auctionRules.d.ts +76 -0
- package/dist/auctionRules.d.ts.map +1 -0
- package/dist/auctionRules.js +106 -0
- package/dist/auctionRules.js.map +1 -0
- package/dist/auctions.d.ts.map +1 -1
- package/dist/auctions.js +19 -10
- package/dist/auctions.js.map +1 -1
- package/dist/client.d.ts +51 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +123 -23
- package/dist/client.js.map +1 -1
- package/dist/commentHistory.d.ts +66 -0
- package/dist/commentHistory.d.ts.map +1 -0
- package/dist/commentHistory.js +125 -0
- package/dist/commentHistory.js.map +1 -0
- package/dist/engine.native.d.ts.map +1 -1
- package/dist/engine.native.js +17 -845
- package/dist/engine.native.js.map +1 -1
- package/dist/giveawayPrize.d.ts +13 -0
- package/dist/giveawayPrize.d.ts.map +1 -0
- package/dist/giveawayPrize.js +18 -0
- package/dist/giveawayPrize.js.map +1 -0
- package/dist/giveawayPrizeLines.d.ts +67 -0
- package/dist/giveawayPrizeLines.d.ts.map +1 -0
- package/dist/giveawayPrizeLines.js +48 -0
- package/dist/giveawayPrizeLines.js.map +1 -0
- package/dist/giveawayRoster.d.ts +53 -0
- package/dist/giveawayRoster.d.ts.map +1 -0
- package/dist/giveawayRoster.js +93 -0
- package/dist/giveawayRoster.js.map +1 -0
- package/dist/heldComments.d.ts +29 -0
- package/dist/heldComments.d.ts.map +1 -0
- package/dist/heldComments.js +61 -0
- package/dist/heldComments.js.map +1 -0
- package/dist/hiddenShows.d.ts +34 -0
- package/dist/hiddenShows.d.ts.map +1 -0
- package/dist/hiddenShows.js +42 -0
- package/dist/hiddenShows.js.map +1 -0
- package/dist/index.d.ts +17 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +86 -3
- package/dist/index.js.map +1 -1
- package/dist/liveShow.d.ts +58 -0
- package/dist/liveShow.d.ts.map +1 -0
- package/dist/liveShow.js +55 -0
- package/dist/liveShow.js.map +1 -0
- package/dist/pipWindow.d.ts +85 -0
- package/dist/pipWindow.d.ts.map +1 -0
- package/dist/pipWindow.js +88 -0
- package/dist/pipWindow.js.map +1 -0
- package/dist/polls.d.ts.map +1 -1
- package/dist/polls.js +3 -0
- package/dist/polls.js.map +1 -1
- package/dist/react/LiveSellingProvider.d.ts +10 -1
- package/dist/react/LiveSellingProvider.d.ts.map +1 -1
- package/dist/react/LiveSellingProvider.js +6 -2
- package/dist/react/LiveSellingProvider.js.map +1 -1
- package/dist/react/LiveVideoTarget.d.ts.map +1 -1
- package/dist/react/LiveVideoTarget.js +41 -3
- package/dist/react/LiveVideoTarget.js.map +1 -1
- package/dist/react/clocks.d.ts +29 -0
- package/dist/react/clocks.d.ts.map +1 -0
- package/dist/react/clocks.js +124 -0
- package/dist/react/clocks.js.map +1 -0
- package/dist/react/index.d.ts +7 -2
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +15 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/index.web.d.ts +9 -2
- package/dist/react/index.web.d.ts.map +1 -1
- package/dist/react/index.web.js +27 -4
- package/dist/react/index.web.js.map +1 -1
- package/dist/react/startSignIn.d.ts +3 -0
- package/dist/react/startSignIn.d.ts.map +1 -0
- package/dist/react/startSignIn.js +19 -0
- package/dist/react/startSignIn.js.map +1 -0
- package/dist/react/useAuctionBidGate.d.ts +54 -4
- package/dist/react/useAuctionBidGate.d.ts.map +1 -1
- package/dist/react/useAuctionBidGate.js +169 -25
- package/dist/react/useAuctionBidGate.js.map +1 -1
- package/dist/react/useAuctionWins.d.ts +9 -1
- package/dist/react/useAuctionWins.d.ts.map +1 -1
- package/dist/react/useAuctionWins.js +9 -3
- package/dist/react/useAuctionWins.js.map +1 -1
- package/dist/react/useGiveawayEntry.d.ts +59 -0
- package/dist/react/useGiveawayEntry.d.ts.map +1 -0
- package/dist/react/useGiveawayEntry.js +170 -0
- package/dist/react/useGiveawayEntry.js.map +1 -0
- package/dist/react/useGiveawayPrize.d.ts +12 -0
- package/dist/react/useGiveawayPrize.d.ts.map +1 -0
- package/dist/react/useGiveawayPrize.js +53 -0
- package/dist/react/useGiveawayPrize.js.map +1 -0
- package/dist/react/useHiddenShows.d.ts +10 -0
- package/dist/react/useHiddenShows.d.ts.map +1 -0
- package/dist/react/useHiddenShows.js +30 -0
- package/dist/react/useHiddenShows.js.map +1 -0
- package/dist/react/useLiveSession.d.ts +7 -3
- package/dist/react/useLiveSession.d.ts.map +1 -1
- package/dist/react/useLiveSession.js +522 -157
- package/dist/react/useLiveSession.js.map +1 -1
- package/dist/react/useLiveShow.d.ts +3 -0
- package/dist/react/useLiveShow.d.ts.map +1 -0
- package/dist/react/useLiveShow.js +21 -0
- package/dist/react/useLiveShow.js.map +1 -0
- package/dist/react/useLiveStreams.d.ts.map +1 -1
- package/dist/react/useLiveStreams.js +6 -2
- package/dist/react/useLiveStreams.js.map +1 -1
- package/dist/react/useOngoingLive.d.ts +1 -0
- package/dist/react/useOngoingLive.d.ts.map +1 -1
- package/dist/react/useOngoingLive.js +7 -1
- package/dist/react/useOngoingLive.js.map +1 -1
- package/dist/react/useReplays.d.ts +12 -0
- package/dist/react/useReplays.d.ts.map +1 -1
- package/dist/react/useReplays.js +56 -24
- package/dist/react/useReplays.js.map +1 -1
- package/dist/react/useStreamInfo.d.ts +13 -2
- package/dist/react/useStreamInfo.d.ts.map +1 -1
- package/dist/react/useStreamInfo.js +31 -5
- package/dist/react/useStreamInfo.js.map +1 -1
- package/dist/replayPages.d.ts +31 -0
- package/dist/replayPages.d.ts.map +1 -0
- package/dist/replayPages.js +34 -0
- package/dist/replayPages.js.map +1 -0
- package/dist/replays.d.ts +7 -0
- package/dist/replays.d.ts.map +1 -1
- package/dist/replays.js +52 -22
- package/dist/replays.js.map +1 -1
- package/dist/session.d.ts +39 -6
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +209 -22
- package/dist/session.js.map +1 -1
- package/dist/sessionTypes.d.ts +190 -14
- package/dist/sessionTypes.d.ts.map +1 -1
- package/dist/sessionTypes.js +2 -1
- package/dist/sessionTypes.js.map +1 -1
- package/dist/shopifyCommerce.d.ts +149 -0
- package/dist/shopifyCommerce.d.ts.map +1 -0
- package/dist/shopifyCommerce.js +123 -0
- package/dist/shopifyCommerce.js.map +1 -0
- package/dist/shopifyIdentity.d.ts +51 -0
- package/dist/shopifyIdentity.d.ts.map +1 -0
- package/dist/shopifyIdentity.js +52 -0
- package/dist/shopifyIdentity.js.map +1 -0
- package/dist/shopifyIds.d.ts +9 -0
- package/dist/shopifyIds.d.ts.map +1 -0
- package/dist/shopifyIds.js +18 -0
- package/dist/shopifyIds.js.map +1 -0
- package/dist/showLinks.d.ts +24 -0
- package/dist/showLinks.d.ts.map +1 -0
- package/dist/showLinks.js +23 -0
- package/dist/showLinks.js.map +1 -0
- package/dist/showLots.d.ts +28 -0
- package/dist/showLots.d.ts.map +1 -0
- package/dist/showLots.js +51 -0
- package/dist/showLots.js.map +1 -0
- package/dist/showNames.d.ts +45 -0
- package/dist/showNames.d.ts.map +1 -0
- package/dist/showNames.js +74 -0
- package/dist/showNames.js.map +1 -0
- package/dist/streams.d.ts +27 -1
- package/dist/streams.d.ts.map +1 -1
- package/dist/streams.js +90 -21
- package/dist/streams.js.map +1 -1
- package/dist/types.d.ts +195 -8
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/dist/wire.d.ts +31 -0
- package/dist/wire.d.ts.map +1 -1
- package/dist/wire.js +25 -0
- package/dist/wire.js.map +1 -1
- package/dist/zego.d.ts +3 -1
- package/dist/zego.d.ts.map +1 -1
- package/dist/zego.js +1 -1
- package/dist/zegoEngine.d.ts +168 -0
- package/dist/zegoEngine.d.ts.map +1 -0
- package/dist/zegoEngine.js +1052 -0
- package/dist/zegoEngine.js.map +1 -0
- package/package.json +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.native.js","sourceRoot":"","sources":["../src/engine.native.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.native.js","sourceRoot":"","sources":["../src/engine.native.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,+CAAwC;AACxC,8FAAmE;AAEnE,uCAAoC;AACpC,6CAA8C;AAIjC,QAAA,MAAM,GAAe,IAAI,2BAAc,CAAC;IACnD,8DAA8D;IAC9D,QAAQ,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAe;IACxE,QAAQ,EAAE,uBAAQ,CAAC,EAAE;IACrB,GAAG,EAAE,yCAAO;IACZ,UAAU,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,iBAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,WAAW,CAAC;CAChF,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The giveaway's prize in the catalogue (0.9.0, "SDK move 8"): which of the product's variants is the
|
|
3
|
+
* one given away. The record names it by the gateway's bare id (`"44145257709883"`); the catalogue by
|
|
4
|
+
* its own (a Shopify GID, `gid://shopify/ProductVariant/44145257709883`). `useGiveawayPrize` is the hook.
|
|
5
|
+
*
|
|
6
|
+
* Pure, so it loads in plain Node for tests and in an app's own test runner.
|
|
7
|
+
*/
|
|
8
|
+
import type { LiveProduct, LiveProductVariant } from './sessionTypes';
|
|
9
|
+
/** A variant id from the giveaway's record against the catalogue's: the same variant? Equal, or ending in `/` and the id. */
|
|
10
|
+
export declare function isTheVariant(recordVariantId: string | null | undefined, catalogueVariantId: string): boolean;
|
|
11
|
+
/** The given-away variant among the product's, or null when the record names none or the product doesn't have it. */
|
|
12
|
+
export declare function givenAwayVariant(product: Pick<LiveProduct, 'variants'> | null | undefined, recordVariantId: string | null | undefined): LiveProductVariant | null;
|
|
13
|
+
//# sourceMappingURL=giveawayPrize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"giveawayPrize.d.ts","sourceRoot":"","sources":["../src/giveawayPrize.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEtE,6HAA6H;AAC7H,wBAAgB,YAAY,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,kBAAkB,EAAE,MAAM,GAAG,OAAO,CAG5G;AAED,qHAAqH;AACrH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,GAAG,IAAI,GAAG,SAAS,EACzD,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACzC,kBAAkB,GAAG,IAAI,CAG3B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isTheVariant = isTheVariant;
|
|
4
|
+
exports.givenAwayVariant = givenAwayVariant;
|
|
5
|
+
/** A variant id from the giveaway's record against the catalogue's: the same variant? Equal, or ending in `/` and the id. */
|
|
6
|
+
function isTheVariant(recordVariantId, catalogueVariantId) {
|
|
7
|
+
if (!recordVariantId)
|
|
8
|
+
return false;
|
|
9
|
+
return catalogueVariantId === recordVariantId || catalogueVariantId.endsWith(`/${recordVariantId}`);
|
|
10
|
+
}
|
|
11
|
+
/** The given-away variant among the product's, or null when the record names none or the product doesn't have it. */
|
|
12
|
+
function givenAwayVariant(product, recordVariantId) {
|
|
13
|
+
var _a;
|
|
14
|
+
if (!product)
|
|
15
|
+
return null;
|
|
16
|
+
return (_a = product.variants.find((variant) => isTheVariant(recordVariantId, variant.id))) !== null && _a !== void 0 ? _a : null;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=giveawayPrize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"giveawayPrize.js","sourceRoot":"","sources":["../src/giveawayPrize.ts"],"names":[],"mappings":";;AAUA,oCAGC;AAGD,4CAMC;AAbD,6HAA6H;AAC7H,SAAgB,YAAY,CAAC,eAA0C,EAAE,kBAA0B;IACjG,IAAI,CAAC,eAAe;QAAE,OAAO,KAAK,CAAC;IACnC,OAAO,kBAAkB,KAAK,eAAe,IAAI,kBAAkB,CAAC,QAAQ,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;AACtG,CAAC;AAED,qHAAqH;AACrH,SAAgB,gBAAgB,CAC9B,OAAyD,EACzD,eAA0C;;IAE1C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,MAAA,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,mCAAI,IAAI,CAAC;AAC/F,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A giveaway prize in the shopping cart.
|
|
3
|
+
*
|
|
4
|
+
* The live-selling service adds a won prize to the winner's cart, stamped with a line attribute, and
|
|
5
|
+
* the store's cart transform makes that line free. The cart has to recognise the line (no stepper, no
|
|
6
|
+
* remove) and show what it costs.
|
|
7
|
+
*/
|
|
8
|
+
import type { ShopifyMoney } from './shopifyCommerce';
|
|
9
|
+
/**
|
|
10
|
+
* The keys a prize line is stamped with, both in use: `_isGiveawayItem`, which the live-selling
|
|
11
|
+
* service writes on the prize it adds to a winner's cart (seen on real lines: Freckled Poppy
|
|
12
|
+
* 2026-09-07, Amore 2026-10-05), and `_giveawayItem`, which Freckled Poppy's auction cart writes.
|
|
13
|
+
*/
|
|
14
|
+
export declare const GIVEAWAY_PRIZE_KEYS: readonly string[];
|
|
15
|
+
export interface GiveawayPrizeLineOptions {
|
|
16
|
+
/** The keys that mark a prize on this store. Defaults to `GIVEAWAY_PRIZE_KEYS`, both spellings. */
|
|
17
|
+
keys?: readonly string[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Whether a cart line is stamped as a giveaway prize: any of `keys`, with any value but `"false"` (the
|
|
21
|
+
* service's value isn't documented, and a stamped line is a prize).
|
|
22
|
+
*
|
|
23
|
+
* The stamp proves a prize, never a price: the store's repricing may not have run (Freckled Poppy saw
|
|
24
|
+
* stamped lines charged in full, 2026-09-15), so show the line's price with `prizeLinePrice`.
|
|
25
|
+
*/
|
|
26
|
+
export declare function isGiveawayPrizeLine(line: {
|
|
27
|
+
attributes?: readonly {
|
|
28
|
+
key: string;
|
|
29
|
+
value?: string | null;
|
|
30
|
+
}[] | null;
|
|
31
|
+
}, options?: GiveawayPrizeLineOptions): boolean;
|
|
32
|
+
/** What a prize line costs now. */
|
|
33
|
+
export interface PrizeLinePrice {
|
|
34
|
+
/** The price of one unit now: the line's total shared over its quantity. */
|
|
35
|
+
nowPerUnit: ShopifyMoney;
|
|
36
|
+
/** The line costs nothing: the store has made it free. */
|
|
37
|
+
costsNothing: boolean;
|
|
38
|
+
/** It costs less than the unit price, so show the unit price struck through beside it. */
|
|
39
|
+
repriced: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* What a prize line costs now, per unit. The store makes a prize free by zeroing the line's total, not
|
|
43
|
+
* its unit price: Shopify's `amountPerQuantity` stays the full price ($9.00 on a $0.00 line, Amore
|
|
44
|
+
* 2026-10-05; $4.00 on $0.00, Freckled Poppy 2026-09-07). So the line's total, shared over its units,
|
|
45
|
+
* is the price.
|
|
46
|
+
*/
|
|
47
|
+
export declare function prizeLinePrice(line: {
|
|
48
|
+
quantity: number;
|
|
49
|
+
cost: {
|
|
50
|
+
totalAmount: ShopifyMoney;
|
|
51
|
+
};
|
|
52
|
+
merchandise: {
|
|
53
|
+
price: ShopifyMoney;
|
|
54
|
+
};
|
|
55
|
+
}): PrizeLinePrice;
|
|
56
|
+
/**
|
|
57
|
+
* The variant ids of the prizes among a customer's wins: what `useAuctionWins().giveawayVariantIds`
|
|
58
|
+
* holds. A cart checks a line's variant against it to show a prize the host put in the shopping cart
|
|
59
|
+
* with no stamp as a prize.
|
|
60
|
+
*/
|
|
61
|
+
export declare function giveawayVariantIdsOf(wins: readonly {
|
|
62
|
+
isGiveaway: boolean;
|
|
63
|
+
variant: {
|
|
64
|
+
id: string;
|
|
65
|
+
};
|
|
66
|
+
}[]): ReadonlySet<string>;
|
|
67
|
+
//# sourceMappingURL=giveawayPrizeLines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"giveawayPrizeLines.d.ts","sourceRoot":"","sources":["../src/giveawayPrizeLines.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EAAyC,CAAC;AAE3F,MAAM,WAAW,wBAAwB;IACvC,mGAAmG;IACnG,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,SAAS;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,GAAG,IAAI,CAAA;CAAE,EAC/E,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAGT;AAED,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,UAAU,EAAE,YAAY,CAAC;IACzB,0DAA0D;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB,0FAA0F;IAC1F,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE;QAAE,WAAW,EAAE,YAAY,CAAA;KAAE,CAAC;IACpC,WAAW,EAAE;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;CACtC,GAAG,cAAc,CAQjB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAAE,GAChE,WAAW,CAAC,MAAM,CAAC,CAErB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GIVEAWAY_PRIZE_KEYS = void 0;
|
|
4
|
+
exports.isGiveawayPrizeLine = isGiveawayPrizeLine;
|
|
5
|
+
exports.prizeLinePrice = prizeLinePrice;
|
|
6
|
+
exports.giveawayVariantIdsOf = giveawayVariantIdsOf;
|
|
7
|
+
/**
|
|
8
|
+
* The keys a prize line is stamped with, both in use: `_isGiveawayItem`, which the live-selling
|
|
9
|
+
* service writes on the prize it adds to a winner's cart (seen on real lines: Freckled Poppy
|
|
10
|
+
* 2026-09-07, Amore 2026-10-05), and `_giveawayItem`, which Freckled Poppy's auction cart writes.
|
|
11
|
+
*/
|
|
12
|
+
exports.GIVEAWAY_PRIZE_KEYS = ['_isGiveawayItem', '_giveawayItem'];
|
|
13
|
+
/**
|
|
14
|
+
* Whether a cart line is stamped as a giveaway prize: any of `keys`, with any value but `"false"` (the
|
|
15
|
+
* service's value isn't documented, and a stamped line is a prize).
|
|
16
|
+
*
|
|
17
|
+
* The stamp proves a prize, never a price: the store's repricing may not have run (Freckled Poppy saw
|
|
18
|
+
* stamped lines charged in full, 2026-09-15), so show the line's price with `prizeLinePrice`.
|
|
19
|
+
*/
|
|
20
|
+
function isGiveawayPrizeLine(line, options = {}) {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
const keys = (_a = options.keys) !== null && _a !== void 0 ? _a : exports.GIVEAWAY_PRIZE_KEYS;
|
|
23
|
+
return ((_b = line.attributes) !== null && _b !== void 0 ? _b : []).some((attribute) => keys.includes(attribute.key) && attribute.value !== 'false');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* What a prize line costs now, per unit. The store makes a prize free by zeroing the line's total, not
|
|
27
|
+
* its unit price: Shopify's `amountPerQuantity` stays the full price ($9.00 on a $0.00 line, Amore
|
|
28
|
+
* 2026-10-05; $4.00 on $0.00, Freckled Poppy 2026-09-07). So the line's total, shared over its units,
|
|
29
|
+
* is the price.
|
|
30
|
+
*/
|
|
31
|
+
function prizeLinePrice(line) {
|
|
32
|
+
const total = Number(line.cost.totalAmount.amount);
|
|
33
|
+
const perUnit = line.quantity > 0 ? total / line.quantity : total;
|
|
34
|
+
return {
|
|
35
|
+
nowPerUnit: { amount: perUnit.toFixed(2), currencyCode: line.cost.totalAmount.currencyCode },
|
|
36
|
+
costsNothing: total === 0,
|
|
37
|
+
repriced: perUnit < Number(line.merchandise.price.amount),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The variant ids of the prizes among a customer's wins: what `useAuctionWins().giveawayVariantIds`
|
|
42
|
+
* holds. A cart checks a line's variant against it to show a prize the host put in the shopping cart
|
|
43
|
+
* with no stamp as a prize.
|
|
44
|
+
*/
|
|
45
|
+
function giveawayVariantIdsOf(wins) {
|
|
46
|
+
return new Set(wins.filter((win) => win.isGiveaway).map((win) => win.variant.id));
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=giveawayPrizeLines.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"giveawayPrizeLines.js","sourceRoot":"","sources":["../src/giveawayPrizeLines.ts"],"names":[],"mappings":";;;AA4BA,kDAMC;AAkBD,wCAYC;AAOD,oDAIC;AAlED;;;;GAIG;AACU,QAAA,mBAAmB,GAAsB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;AAO3F;;;;;;GAMG;AACH,SAAgB,mBAAmB,CACjC,IAA+E,EAC/E,UAAoC,EAAE;;IAEtC,MAAM,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,2BAAmB,CAAC;IACjD,OAAO,CAAC,MAAA,IAAI,CAAC,UAAU,mCAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC;AAClH,CAAC;AAYD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,IAI9B;IACC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;IAClE,OAAO;QACL,UAAU,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;QAC5F,YAAY,EAAE,KAAK,KAAK,CAAC;QACzB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAClC,IAAiE;IAEjE,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpF,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { LiveGiveaway } from './types';
|
|
2
|
+
/** How often the record is asked for the roster while waiting. */
|
|
3
|
+
export declare const GIVEAWAY_ROSTER_RETRY_MS = 700;
|
|
4
|
+
/** How long the reveal waits for a roster before going ahead without one. */
|
|
5
|
+
export declare const GIVEAWAY_ROSTER_WAIT_MS = 5000;
|
|
6
|
+
/**
|
|
7
|
+
* The giveaway the session means by a lot: the open one for that product, else its latest.
|
|
8
|
+
*
|
|
9
|
+
* **The same product can be given away more than once in a show**, and the record keeps every one,
|
|
10
|
+
* oldest first (`giveawayProducts`, appended as the host starts each). Seen 2026-10-05 on show
|
|
11
|
+
* `h2rorgm7po`: Navy / XL drawn at 06:26, given away again at 09:37. Taking the first entry for the
|
|
12
|
+
* product, as 0.9.0 did, handed a viewer who joined during the second one the FIRST, already `ended`,
|
|
13
|
+
* so no nudge showed; and its entrants would have rolled in the second one's draw. An earlier, finished
|
|
14
|
+
* giveaway of the same product is never the one meant.
|
|
15
|
+
*/
|
|
16
|
+
export declare function giveawayForLot(giveaways: LiveGiveaway[], storeProductId: string): LiveGiveaway | null;
|
|
17
|
+
/**
|
|
18
|
+
* The names on the record for a lot just drawn: its latest giveaway's (the one drawn, ended or not yet
|
|
19
|
+
* marked so). Empty while the record has none yet, so the wait goes on rather than roll an earlier
|
|
20
|
+
* giveaway's entrants for the same product.
|
|
21
|
+
*/
|
|
22
|
+
export declare function rosterFromRecord(giveaways: LiveGiveaway[], storeProductId: string): string[];
|
|
23
|
+
/**
|
|
24
|
+
* The customer id the record names as the winner of a draw (0.9.0): on the giveaway with the draw's lot
|
|
25
|
+
* AND its start, so a record read before a repeat of the same product (which still ends with the
|
|
26
|
+
* earlier draw, winner and all) can't name the earlier winner. Null when the start isn't known, the
|
|
27
|
+
* record has no such giveaway yet, or it names nobody.
|
|
28
|
+
*/
|
|
29
|
+
export declare function winnerIdFromRecord(giveaways: LiveGiveaway[], storeProductId: string, startedAtMs: number | null): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Whether this shopper won the draw (0.9.0), `giveaway.result.isYou`: by customer id when the record
|
|
32
|
+
* names the winner (`winnerId`), else, as amore-v2 matched it, among those who entered by the room's
|
|
33
|
+
* name, spaces and capitals aside. The room names the winner only by name (`giveaway_end`), so without
|
|
34
|
+
* an id another entrant with the same name would be told they won too.
|
|
35
|
+
*/
|
|
36
|
+
export declare function isYourGiveawayWin(draw: {
|
|
37
|
+
winnerId: string | null;
|
|
38
|
+
winnerName: string;
|
|
39
|
+
youEntered: boolean;
|
|
40
|
+
bidderId: string | null;
|
|
41
|
+
viewerName: string | null;
|
|
42
|
+
}): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Reads the record now and every `retryMs`, and calls `onGiveUp` after `waitMs`. Returns a stop, which
|
|
45
|
+
* the caller runs as soon as the names arrive.
|
|
46
|
+
*/
|
|
47
|
+
export declare function waitForGiveawayRoster(options: {
|
|
48
|
+
readRecord: () => void;
|
|
49
|
+
onGiveUp: () => void;
|
|
50
|
+
retryMs?: number;
|
|
51
|
+
waitMs?: number;
|
|
52
|
+
}): () => void;
|
|
53
|
+
//# sourceMappingURL=giveawayRoster.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"giveawayRoster.d.ts","sourceRoot":"","sources":["../src/giveawayRoster.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAE7C;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAGrG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAG5F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,YAAY,EAAE,EACzB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,GAAG,IAAI,GACzB,MAAM,GAAG,IAAI,CAMf;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,OAAO,CAGV;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,IAAI,CAYb"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GIVEAWAY_ROSTER_WAIT_MS = exports.GIVEAWAY_ROSTER_RETRY_MS = void 0;
|
|
4
|
+
exports.giveawayForLot = giveawayForLot;
|
|
5
|
+
exports.rosterFromRecord = rosterFromRecord;
|
|
6
|
+
exports.winnerIdFromRecord = winnerIdFromRecord;
|
|
7
|
+
exports.isYourGiveawayWin = isYourGiveawayWin;
|
|
8
|
+
exports.waitForGiveawayRoster = waitForGiveawayRoster;
|
|
9
|
+
/**
|
|
10
|
+
* The roster a giveaway reveal rolls through — ENG-705.
|
|
11
|
+
*
|
|
12
|
+
* `giveaway_end` names only the winner. The entrants come off the stream record, on the giveaway's
|
|
13
|
+
* `users`, and the room hears the end BEFORE the gateway has written them there. One re-read lost that
|
|
14
|
+
* race; the reveal then showed the winner alone, or the winner, then everyone, then the winner again
|
|
15
|
+
* as later reads changed the list under it. So the session asks the record again on a short beat for a
|
|
16
|
+
* few seconds, takes the first list that has names, and keeps it.
|
|
17
|
+
*
|
|
18
|
+
* **The real fix is the gateway's**: send the entrant names (or the roster's size and a sample) on
|
|
19
|
+
* `giveaway_end`, so the reveal needs no second read at all.
|
|
20
|
+
*/
|
|
21
|
+
const showNames_1 = require("./showNames");
|
|
22
|
+
/** How often the record is asked for the roster while waiting. */
|
|
23
|
+
exports.GIVEAWAY_ROSTER_RETRY_MS = 700;
|
|
24
|
+
/** How long the reveal waits for a roster before going ahead without one. */
|
|
25
|
+
exports.GIVEAWAY_ROSTER_WAIT_MS = 5000;
|
|
26
|
+
/**
|
|
27
|
+
* The giveaway the session means by a lot: the open one for that product, else its latest.
|
|
28
|
+
*
|
|
29
|
+
* **The same product can be given away more than once in a show**, and the record keeps every one,
|
|
30
|
+
* oldest first (`giveawayProducts`, appended as the host starts each). Seen 2026-10-05 on show
|
|
31
|
+
* `h2rorgm7po`: Navy / XL drawn at 06:26, given away again at 09:37. Taking the first entry for the
|
|
32
|
+
* product, as 0.9.0 did, handed a viewer who joined during the second one the FIRST, already `ended`,
|
|
33
|
+
* so no nudge showed; and its entrants would have rolled in the second one's draw. An earlier, finished
|
|
34
|
+
* giveaway of the same product is never the one meant.
|
|
35
|
+
*/
|
|
36
|
+
function giveawayForLot(giveaways, storeProductId) {
|
|
37
|
+
var _a, _b;
|
|
38
|
+
const forLot = giveaways.filter((giveaway) => giveaway.storeProductId === storeProductId);
|
|
39
|
+
return (_b = (_a = forLot.find((giveaway) => giveaway.status === 'active')) !== null && _a !== void 0 ? _a : forLot[forLot.length - 1]) !== null && _b !== void 0 ? _b : null;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The names on the record for a lot just drawn: its latest giveaway's (the one drawn, ended or not yet
|
|
43
|
+
* marked so). Empty while the record has none yet, so the wait goes on rather than roll an earlier
|
|
44
|
+
* giveaway's entrants for the same product.
|
|
45
|
+
*/
|
|
46
|
+
function rosterFromRecord(giveaways, storeProductId) {
|
|
47
|
+
var _a, _b;
|
|
48
|
+
const forLot = giveaways.filter((giveaway) => giveaway.storeProductId === storeProductId);
|
|
49
|
+
return (_b = (_a = forLot[forLot.length - 1]) === null || _a === void 0 ? void 0 : _a.entrantNames) !== null && _b !== void 0 ? _b : [];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The customer id the record names as the winner of a draw (0.9.0): on the giveaway with the draw's lot
|
|
53
|
+
* AND its start, so a record read before a repeat of the same product (which still ends with the
|
|
54
|
+
* earlier draw, winner and all) can't name the earlier winner. Null when the start isn't known, the
|
|
55
|
+
* record has no such giveaway yet, or it names nobody.
|
|
56
|
+
*/
|
|
57
|
+
function winnerIdFromRecord(giveaways, storeProductId, startedAtMs) {
|
|
58
|
+
var _a;
|
|
59
|
+
if (startedAtMs === null)
|
|
60
|
+
return null;
|
|
61
|
+
const drawn = giveaways.find((giveaway) => giveaway.storeProductId === storeProductId && giveaway.startedAtMs === startedAtMs);
|
|
62
|
+
return (_a = drawn === null || drawn === void 0 ? void 0 : drawn.winnerId) !== null && _a !== void 0 ? _a : null;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Whether this shopper won the draw (0.9.0), `giveaway.result.isYou`: by customer id when the record
|
|
66
|
+
* names the winner (`winnerId`), else, as amore-v2 matched it, among those who entered by the room's
|
|
67
|
+
* name, spaces and capitals aside. The room names the winner only by name (`giveaway_end`), so without
|
|
68
|
+
* an id another entrant with the same name would be told they won too.
|
|
69
|
+
*/
|
|
70
|
+
function isYourGiveawayWin(draw) {
|
|
71
|
+
if (draw.winnerId)
|
|
72
|
+
return !!draw.bidderId && draw.winnerId === draw.bidderId;
|
|
73
|
+
return draw.youEntered && (0, showNames_1.sameRoomName)(draw.winnerName, draw.viewerName);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Reads the record now and every `retryMs`, and calls `onGiveUp` after `waitMs`. Returns a stop, which
|
|
77
|
+
* the caller runs as soon as the names arrive.
|
|
78
|
+
*/
|
|
79
|
+
function waitForGiveawayRoster(options) {
|
|
80
|
+
var _a, _b;
|
|
81
|
+
const { readRecord, onGiveUp } = options;
|
|
82
|
+
readRecord();
|
|
83
|
+
const retry = setInterval(readRecord, (_a = options.retryMs) !== null && _a !== void 0 ? _a : exports.GIVEAWAY_ROSTER_RETRY_MS);
|
|
84
|
+
const giveUp = setTimeout(() => {
|
|
85
|
+
clearInterval(retry);
|
|
86
|
+
onGiveUp();
|
|
87
|
+
}, (_b = options.waitMs) !== null && _b !== void 0 ? _b : exports.GIVEAWAY_ROSTER_WAIT_MS);
|
|
88
|
+
return () => {
|
|
89
|
+
clearInterval(retry);
|
|
90
|
+
clearTimeout(giveUp);
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=giveawayRoster.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"giveawayRoster.js","sourceRoot":"","sources":["../src/giveawayRoster.ts"],"names":[],"mappings":";;;AA+BA,wCAGC;AAOD,4CAGC;AAQD,gDAUC;AAQD,8CASC;AAMD,sDAiBC;AAtGD;;;;;;;;;;;GAWG;AACH,2CAA2C;AAG3C,kEAAkE;AACrD,QAAA,wBAAwB,GAAG,GAAG,CAAC;AAE5C,6EAA6E;AAChE,QAAA,uBAAuB,GAAG,IAAK,CAAC;AAE7C;;;;;;;;;GASG;AACH,SAAgB,cAAc,CAAC,SAAyB,EAAE,cAAsB;;IAC9E,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC;IAC1F,OAAO,MAAA,MAAA,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,mCAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,IAAI,CAAC;AACtG,CAAC;AAED;;;;GAIG;AACH,SAAgB,gBAAgB,CAAC,SAAyB,EAAE,cAAsB;;IAChF,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,KAAK,cAAc,CAAC,CAAC;IAC1F,OAAO,MAAA,MAAA,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,0CAAE,YAAY,mCAAI,EAAE,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAChC,SAAyB,EACzB,cAAsB,EACtB,WAA0B;;IAE1B,IAAI,WAAW,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAC1B,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,KAAK,cAAc,IAAI,QAAQ,CAAC,WAAW,KAAK,WAAW,CACjG,CAAC;IACF,OAAO,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,IAAI,CAAC;AACjC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,IAMjC;IACC,IAAI,IAAI,CAAC,QAAQ;QAAE,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC;IAC7E,OAAO,IAAI,CAAC,UAAU,IAAI,IAAA,wBAAY,EAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC3E,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,OAKrC;;IACC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACzC,UAAU,EAAE,CAAC;IACb,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,EAAE,MAAA,OAAO,CAAC,OAAO,mCAAI,gCAAwB,CAAC,CAAC;IACnF,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE;QAC7B,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,QAAQ,EAAE,CAAC;IACb,CAAC,EAAE,MAAA,OAAO,CAAC,MAAM,mCAAI,+BAAuB,CAAC,CAAC;IAC9C,OAAO,GAAG,EAAE;QACV,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,YAAY,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Comments held back until the shopper's name is known (L6).
|
|
3
|
+
*
|
|
4
|
+
* A signed-in shopper is never asked for a name — the session uses the customer's own — but the
|
|
5
|
+
* customer record loads after the screen does. A comment sent in that gap went out under the engine's
|
|
6
|
+
* fallback, "Anonymous", into the room and into the stored history, where it cannot be taken back.
|
|
7
|
+
* The session now holds such a comment here and sends it the moment the name lands.
|
|
8
|
+
*
|
|
9
|
+
* Bounded: a held comment is sent anyway after `maxWaitMs`, because a comment that silently never
|
|
10
|
+
* arrives is worse than one under the fallback name. Each caller's promise settles once its own
|
|
11
|
+
* comment has been sent (or dropped with the show).
|
|
12
|
+
*/
|
|
13
|
+
export declare const HELD_COMMENT_MAX_WAIT_MS = 10000;
|
|
14
|
+
export declare class HeldComments<T> {
|
|
15
|
+
private readonly send;
|
|
16
|
+
private readonly maxWaitMs;
|
|
17
|
+
private held;
|
|
18
|
+
private timer;
|
|
19
|
+
constructor(send: (item: T) => Promise<void>, maxWaitMs?: number);
|
|
20
|
+
get size(): number;
|
|
21
|
+
/** Holds one comment. Resolves once it has been sent, in the order it was held. */
|
|
22
|
+
hold(item: T): Promise<void>;
|
|
23
|
+
/** Sends everything held, oldest first. A failed send is the sender's to report; the rest still go. */
|
|
24
|
+
release(): Promise<void>;
|
|
25
|
+
/** Forgets everything held without sending it — the show changed underneath. */
|
|
26
|
+
drop(): void;
|
|
27
|
+
private clearTimer;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=heldComments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heldComments.d.ts","sourceRoot":"","sources":["../src/heldComments.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,qBAAa,YAAY,CAAC,CAAC;IAKvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAL5B,OAAO,CAAC,IAAI,CAA8C;IAC1D,OAAO,CAAC,KAAK,CAA8C;gBAGxC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,EAChC,SAAS,GAAE,MAAiC;IAG/D,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,mFAAmF;IACnF,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAO5B,uGAAuG;IACjG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B,gFAAgF;IAChF,IAAI,IAAI,IAAI;IAKZ,OAAO,CAAC,UAAU;CAInB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HeldComments = exports.HELD_COMMENT_MAX_WAIT_MS = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Comments held back until the shopper's name is known (L6).
|
|
6
|
+
*
|
|
7
|
+
* A signed-in shopper is never asked for a name — the session uses the customer's own — but the
|
|
8
|
+
* customer record loads after the screen does. A comment sent in that gap went out under the engine's
|
|
9
|
+
* fallback, "Anonymous", into the room and into the stored history, where it cannot be taken back.
|
|
10
|
+
* The session now holds such a comment here and sends it the moment the name lands.
|
|
11
|
+
*
|
|
12
|
+
* Bounded: a held comment is sent anyway after `maxWaitMs`, because a comment that silently never
|
|
13
|
+
* arrives is worse than one under the fallback name. Each caller's promise settles once its own
|
|
14
|
+
* comment has been sent (or dropped with the show).
|
|
15
|
+
*/
|
|
16
|
+
exports.HELD_COMMENT_MAX_WAIT_MS = 10000;
|
|
17
|
+
class HeldComments {
|
|
18
|
+
constructor(send, maxWaitMs = exports.HELD_COMMENT_MAX_WAIT_MS) {
|
|
19
|
+
this.send = send;
|
|
20
|
+
this.maxWaitMs = maxWaitMs;
|
|
21
|
+
this.held = [];
|
|
22
|
+
this.timer = null;
|
|
23
|
+
}
|
|
24
|
+
get size() {
|
|
25
|
+
return this.held.length;
|
|
26
|
+
}
|
|
27
|
+
/** Holds one comment. Resolves once it has been sent, in the order it was held. */
|
|
28
|
+
hold(item) {
|
|
29
|
+
return new Promise((settle) => {
|
|
30
|
+
this.held.push({ item, settle });
|
|
31
|
+
if (!this.timer)
|
|
32
|
+
this.timer = setTimeout(() => void this.release(), this.maxWaitMs);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
/** Sends everything held, oldest first. A failed send is the sender's to report; the rest still go. */
|
|
36
|
+
async release() {
|
|
37
|
+
this.clearTimer();
|
|
38
|
+
const batch = this.held.splice(0);
|
|
39
|
+
for (const { item, settle } of batch) {
|
|
40
|
+
try {
|
|
41
|
+
await this.send(item);
|
|
42
|
+
}
|
|
43
|
+
finally {
|
|
44
|
+
settle();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/** Forgets everything held without sending it — the show changed underneath. */
|
|
49
|
+
drop() {
|
|
50
|
+
this.clearTimer();
|
|
51
|
+
for (const { settle } of this.held.splice(0))
|
|
52
|
+
settle();
|
|
53
|
+
}
|
|
54
|
+
clearTimer() {
|
|
55
|
+
if (this.timer)
|
|
56
|
+
clearTimeout(this.timer);
|
|
57
|
+
this.timer = null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
exports.HeldComments = HeldComments;
|
|
61
|
+
//# sourceMappingURL=heldComments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heldComments.js","sourceRoot":"","sources":["../src/heldComments.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;GAWG;AACU,QAAA,wBAAwB,GAAG,KAAM,CAAC;AAE/C,MAAa,YAAY;IAIvB,YACmB,IAAgC,EAChC,YAAoB,gCAAwB;QAD5C,SAAI,GAAJ,IAAI,CAA4B;QAChC,cAAS,GAAT,SAAS,CAAmC;QALvD,SAAI,GAA2C,EAAE,CAAC;QAClD,UAAK,GAAyC,IAAI,CAAC;IAKxD,CAAC;IAEJ,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,mFAAmF;IACnF,IAAI,CAAC,IAAO;QACV,OAAO,IAAI,OAAO,CAAO,CAAC,MAAM,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACtF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uGAAuG;IACvG,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;YACrC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,IAAI;QACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,MAAM,EAAE,CAAC;IACzD,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,KAAK;YAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF;AA5CD,oCA4CC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hidden shows (0.9.0): a team's practice runs, kept from shoppers.
|
|
3
|
+
*
|
|
4
|
+
* A team rehearses on the store's real live-selling gateway, and the gateway has no "draft" or
|
|
5
|
+
* "hidden" setting, so every list of shows would include the practice runs. The app names them in
|
|
6
|
+
* its config (`hiddenShows`): a show whose title contains one of `titleIncludes`, in any case, is
|
|
7
|
+
* hidden, except from a viewer signed in with an email at one of `visibleToEmailDomains`. Amore and
|
|
8
|
+
* Freckled Poppy each kept this rule, word for word, in their own code (`apptiletest`, `@apptile.io`).
|
|
9
|
+
*
|
|
10
|
+
* Matching is "contains", not "equals": "ApptileTest run 2" is a rehearsal too. The email must END
|
|
11
|
+
* with `@<domain>`, so `host@apptile.io.example.com` is not on the team.
|
|
12
|
+
*
|
|
13
|
+
* Pure, so it loads in plain Node for tests and in an app's own test runner. The hooks apply it with
|
|
14
|
+
* the viewer from `LiveSellingProvider`'s `viewerEmail` and the rule from the config.
|
|
15
|
+
*/
|
|
16
|
+
import type { HiddenShows } from './types';
|
|
17
|
+
/** Whether a viewer signed in with this email sees hidden shows. No email (signed out): never. */
|
|
18
|
+
export declare function seesHiddenShows(viewerEmail: string | null | undefined, rule: HiddenShows | null | undefined): boolean;
|
|
19
|
+
/** Whether the rule hides this show by its title, from viewers who don't see hidden shows. */
|
|
20
|
+
export declare function isHiddenShow(show: {
|
|
21
|
+
title: string;
|
|
22
|
+
} | null | undefined, rule: HiddenShows | null | undefined): boolean;
|
|
23
|
+
/** Whether this viewer must not be shown this show: hidden by its title, and the viewer isn't on the team. */
|
|
24
|
+
export declare function isHiddenFrom(show: {
|
|
25
|
+
title: string;
|
|
26
|
+
} | null | undefined, viewerEmail: string | null | undefined, rule: HiddenShows | null | undefined): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* The shows this viewer may see, in the same order. The same array when nothing is left out, so a
|
|
29
|
+
* memo that depends on it doesn't change for nothing.
|
|
30
|
+
*/
|
|
31
|
+
export declare function withoutHiddenShows<Show extends {
|
|
32
|
+
title: string;
|
|
33
|
+
}>(shows: Show[], viewerEmail: string | null | undefined, rule: HiddenShows | null | undefined): Show[];
|
|
34
|
+
//# sourceMappingURL=hiddenShows.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hiddenShows.d.ts","sourceRoot":"","sources":["../src/hiddenShows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,kGAAkG;AAClG,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOrH;AAED,8FAA8F;AAC9F,wBAAgB,YAAY,CAAC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOtH;AAED,8GAA8G;AAC9G,wBAAgB,YAAY,CAC1B,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACnC,OAAO,CAET;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,SAAS;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAC/D,KAAK,EAAE,IAAI,EAAE,EACb,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACnC,IAAI,EAAE,CAIR"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.seesHiddenShows = seesHiddenShows;
|
|
4
|
+
exports.isHiddenShow = isHiddenShow;
|
|
5
|
+
exports.isHiddenFrom = isHiddenFrom;
|
|
6
|
+
exports.withoutHiddenShows = withoutHiddenShows;
|
|
7
|
+
/** Whether a viewer signed in with this email sees hidden shows. No email (signed out): never. */
|
|
8
|
+
function seesHiddenShows(viewerEmail, rule) {
|
|
9
|
+
const email = (viewerEmail !== null && viewerEmail !== void 0 ? viewerEmail : '').trim().toLowerCase();
|
|
10
|
+
if (!email || !rule)
|
|
11
|
+
return false;
|
|
12
|
+
return rule.visibleToEmailDomains.some((domain) => {
|
|
13
|
+
const plainDomain = domain.trim().toLowerCase().replace(/^@/, '');
|
|
14
|
+
return !!plainDomain && email.endsWith(`@${plainDomain}`);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
/** Whether the rule hides this show by its title, from viewers who don't see hidden shows. */
|
|
18
|
+
function isHiddenShow(show, rule) {
|
|
19
|
+
var _a;
|
|
20
|
+
if (!show || !rule)
|
|
21
|
+
return false;
|
|
22
|
+
const title = ((_a = show.title) !== null && _a !== void 0 ? _a : '').toLowerCase();
|
|
23
|
+
return rule.titleIncludes.some((word) => {
|
|
24
|
+
const plainWord = word.trim().toLowerCase();
|
|
25
|
+
return !!plainWord && title.includes(plainWord);
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/** Whether this viewer must not be shown this show: hidden by its title, and the viewer isn't on the team. */
|
|
29
|
+
function isHiddenFrom(show, viewerEmail, rule) {
|
|
30
|
+
return isHiddenShow(show, rule) && !seesHiddenShows(viewerEmail, rule);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The shows this viewer may see, in the same order. The same array when nothing is left out, so a
|
|
34
|
+
* memo that depends on it doesn't change for nothing.
|
|
35
|
+
*/
|
|
36
|
+
function withoutHiddenShows(shows, viewerEmail, rule) {
|
|
37
|
+
if (!rule || seesHiddenShows(viewerEmail, rule))
|
|
38
|
+
return shows;
|
|
39
|
+
const visible = shows.filter((show) => !isHiddenShow(show, rule));
|
|
40
|
+
return visible.length === shows.length ? shows : visible;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=hiddenShows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hiddenShows.js","sourceRoot":"","sources":["../src/hiddenShows.ts"],"names":[],"mappings":";;AAkBA,0CAOC;AAGD,oCAOC;AAGD,oCAMC;AAMD,gDAQC;AAzCD,kGAAkG;AAClG,SAAgB,eAAe,CAAC,WAAsC,EAAE,IAAoC;IAC1G,MAAM,KAAK,GAAG,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACvD,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IAClC,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QAChD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC,WAAW,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8FAA8F;AAC9F,SAAgB,YAAY,CAAC,IAA0C,EAAE,IAAoC;;IAC3G,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACjC,MAAM,KAAK,GAAG,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8GAA8G;AAC9G,SAAgB,YAAY,CAC1B,IAA0C,EAC1C,WAAsC,EACtC,IAAoC;IAEpC,OAAO,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,SAAgB,kBAAkB,CAChC,KAAa,EACb,WAAsC,EACtC,IAAoC;IAEpC,IAAI,CAAC,IAAI,IAAI,eAAe,CAAC,WAAW,EAAE,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAClE,OAAO,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;AAC3D,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -16,16 +16,31 @@
|
|
|
16
16
|
*/
|
|
17
17
|
export { liveSelling, liveSelling as default } from './liveSelling';
|
|
18
18
|
export { engine as liveEngine } from './engine';
|
|
19
|
-
export { LiveSellingError, toProductGid } from './client';
|
|
19
|
+
export { LiveSellingError, LiveSellingTimeoutError, DEFAULT_REQUEST_TIMEOUT_MS, DEFAULT_OFF_AIR_GRACE_MS, toProductGid, } from './client';
|
|
20
|
+
export { ZegoLoginError, JOIN_ATTEMPTS, JOIN_RETRY_BASE_MS } from './zegoEngine';
|
|
20
21
|
export { toLiveStream, toLiveStreams, toLiveStreamProduct, toLiveGiveaway, toGiveawayEntries, } from './streams';
|
|
21
22
|
export { toLivePoll, toLivePollResults, toEmbeddedResults } from './polls';
|
|
23
|
+
export { imageUrl, toPinnedComment } from './wire';
|
|
24
|
+
export { toCommentHistory, mergeCommentHistory, COMMENT_HISTORY_WINDOW, HOST_SELF_NAME, type CommentHistoryContext, } from './commentHistory';
|
|
25
|
+
export { GIVEAWAY_ROSTER_RETRY_MS, GIVEAWAY_ROSTER_WAIT_MS, giveawayForLot, rosterFromRecord, winnerIdFromRecord, isYourGiveawayWin, } from './giveawayRoster';
|
|
22
26
|
export { toMixerLayout } from './guest';
|
|
23
27
|
export { resetCompanyFlagsCache } from './flags';
|
|
24
28
|
export { MAX_VIEWER_NAME } from './viewer';
|
|
25
29
|
export { LIVE_STREAM_ID_ATTRIBUTE, REPLAY_ID_ATTRIBUTE, liveCartAttributesFor, replayCartAttributesFor, addLiveLine, } from './cartAttributes';
|
|
26
30
|
export { liveAttributionSourceFor, replayAttributionSourceFor, type AttributionSource, } from './attribution';
|
|
27
31
|
export { toCommentSegments, hasCommentLink, classifyCommentLink, toUrlPreview, displayHost, type CommentLink, type CommentSegment, } from './commentLinks';
|
|
28
|
-
export {
|
|
32
|
+
export { createShopifyLiveCommerce, liveProductFromShopify, chargedVariantId, AUCTION_CART_SOURCE_TYPE, WINNING_BID_KEY, WIN_INDEX_KEY, type ShopifyAttribute, type ShopifyBuyer, type ShopifyCartLineInput, type ShopifyImageTransform, type ShopifyLiveCommerce, type ShopifyLiveCommerceOptions, type ShopifyMoney, type ShopifyProductForLive, type ShopifyProductsAndCart, } from './shopifyCommerce';
|
|
33
|
+
export { createShopifyLiveIdentity, type ShopifyCustomerSession, type ShopifyLiveIdentity, } from './shopifyIdentity';
|
|
34
|
+
export { GIVEAWAY_PRIZE_KEYS, isGiveawayPrizeLine, prizeLinePrice, type GiveawayPrizeLineOptions, type PrizeLinePrice, } from './giveawayPrizeLines';
|
|
35
|
+
export { isHiddenFrom, isHiddenShow, seesHiddenShows, withoutHiddenShows } from './hiddenShows';
|
|
36
|
+
export { publicName, firstNameOf, viewerNameFor, sameRoomName, type NamedCustomer } from './showNames';
|
|
37
|
+
export { liveShowFor, canPlayInCard, type LiveShow, type LiveShowStatus, type SessionForCard, type SessionForShow, } from './liveShow';
|
|
38
|
+
export { featuredFirst, withLotFieldsFromRecord } from './showLots';
|
|
39
|
+
export { showLinkDestination } from './showLinks';
|
|
40
|
+
export { bidRefusal, quickBids, winChance, lotStateFor, isYourWin, BID_ON_ITS_WAY_MS, QUICK_BID_STEPS, VERY_HIGH_CHANCE_OVER, GOOD_CHANCE_OVER, type BidRound, type BidRefusalReason, type WinChance, openingBidFor } from './auctionRules';
|
|
41
|
+
export { classifyComment, type CommentLine } from './auctionComments';
|
|
42
|
+
export { isTheVariant, givenAwayVariant } from './giveawayPrize';
|
|
43
|
+
export { sessionReducer, initialSessionState, deriveStatus, roundClosesAt, nextExpiryAt, isNothingOnAir, withOffAirSettled, isTheEndedGiveaway, SOLD_CARD_MS, REACTION_MS, CART_CARD_MS, } from './session';
|
|
29
44
|
export { capabilitiesFor, LIVE_CAPABILITIES, AUCTION_CAPABILITIES, REPLAY_CAPABILITIES, IDLE_AUCTION, IDLE_GIVEAWAY, } from './sessionTypes';
|
|
30
45
|
/**
|
|
31
46
|
* Picture-in-picture, from the native package.
|