@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
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,WAAW,EAAE,WAAW,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -30,7 +30,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
30
30
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
31
31
|
};
|
|
32
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
|
-
exports.
|
|
33
|
+
exports.AUCTION_CART_SOURCE_TYPE = exports.chargedVariantId = exports.liveProductFromShopify = exports.createShopifyLiveCommerce = exports.displayHost = exports.toUrlPreview = exports.classifyCommentLink = exports.hasCommentLink = exports.toCommentSegments = exports.replayAttributionSourceFor = exports.liveAttributionSourceFor = exports.addLiveLine = exports.replayCartAttributesFor = exports.liveCartAttributesFor = exports.REPLAY_ID_ATTRIBUTE = exports.LIVE_STREAM_ID_ATTRIBUTE = exports.MAX_VIEWER_NAME = exports.resetCompanyFlagsCache = exports.toMixerLayout = exports.isYourGiveawayWin = exports.winnerIdFromRecord = exports.rosterFromRecord = exports.giveawayForLot = exports.GIVEAWAY_ROSTER_WAIT_MS = exports.GIVEAWAY_ROSTER_RETRY_MS = exports.HOST_SELF_NAME = exports.COMMENT_HISTORY_WINDOW = exports.mergeCommentHistory = exports.toCommentHistory = exports.toPinnedComment = exports.imageUrl = exports.toEmbeddedResults = exports.toLivePollResults = exports.toLivePoll = exports.toGiveawayEntries = exports.toLiveGiveaway = exports.toLiveStreamProduct = exports.toLiveStreams = exports.toLiveStream = exports.JOIN_RETRY_BASE_MS = exports.JOIN_ATTEMPTS = exports.ZegoLoginError = exports.toProductGid = exports.DEFAULT_OFF_AIR_GRACE_MS = exports.DEFAULT_REQUEST_TIMEOUT_MS = exports.LiveSellingTimeoutError = exports.LiveSellingError = exports.liveEngine = exports.default = exports.liveSelling = void 0;
|
|
34
|
+
exports.livePip = exports.IDLE_GIVEAWAY = exports.IDLE_AUCTION = exports.REPLAY_CAPABILITIES = exports.AUCTION_CAPABILITIES = exports.LIVE_CAPABILITIES = exports.capabilitiesFor = exports.CART_CARD_MS = exports.REACTION_MS = exports.SOLD_CARD_MS = exports.isTheEndedGiveaway = exports.withOffAirSettled = exports.isNothingOnAir = exports.nextExpiryAt = exports.roundClosesAt = exports.deriveStatus = exports.initialSessionState = exports.sessionReducer = exports.givenAwayVariant = exports.isTheVariant = exports.classifyComment = exports.openingBidFor = exports.GOOD_CHANCE_OVER = exports.VERY_HIGH_CHANCE_OVER = exports.QUICK_BID_STEPS = exports.BID_ON_ITS_WAY_MS = exports.isYourWin = exports.lotStateFor = exports.winChance = exports.quickBids = exports.bidRefusal = exports.showLinkDestination = exports.withLotFieldsFromRecord = exports.featuredFirst = exports.canPlayInCard = exports.liveShowFor = exports.sameRoomName = exports.viewerNameFor = exports.firstNameOf = exports.publicName = exports.withoutHiddenShows = exports.seesHiddenShows = exports.isHiddenShow = exports.isHiddenFrom = exports.prizeLinePrice = exports.isGiveawayPrizeLine = exports.GIVEAWAY_PRIZE_KEYS = exports.createShopifyLiveIdentity = exports.WIN_INDEX_KEY = exports.WINNING_BID_KEY = void 0;
|
|
35
|
+
exports.ONGOING_LIVE_POLL_LIVE_MS = exports.ONGOING_LIVE_POLL_IDLE_MS = exports.createOngoingLiveStore = exports.COMMENT_SOURCES = exports.isLivePipSupported = void 0;
|
|
34
36
|
// The imperative client (default + named).
|
|
35
37
|
var liveSelling_1 = require("./liveSelling");
|
|
36
38
|
Object.defineProperty(exports, "liveSelling", { enumerable: true, get: function () { return liveSelling_1.liveSelling; } });
|
|
@@ -41,7 +43,14 @@ Object.defineProperty(exports, "liveEngine", { enumerable: true, get: function (
|
|
|
41
43
|
// Transport primitives, for a host that wants to call an un-wrapped endpoint or match the error shape.
|
|
42
44
|
var client_1 = require("./client");
|
|
43
45
|
Object.defineProperty(exports, "LiveSellingError", { enumerable: true, get: function () { return client_1.LiveSellingError; } });
|
|
46
|
+
Object.defineProperty(exports, "LiveSellingTimeoutError", { enumerable: true, get: function () { return client_1.LiveSellingTimeoutError; } });
|
|
47
|
+
Object.defineProperty(exports, "DEFAULT_REQUEST_TIMEOUT_MS", { enumerable: true, get: function () { return client_1.DEFAULT_REQUEST_TIMEOUT_MS; } });
|
|
48
|
+
Object.defineProperty(exports, "DEFAULT_OFF_AIR_GRACE_MS", { enumerable: true, get: function () { return client_1.DEFAULT_OFF_AIR_GRACE_MS; } });
|
|
44
49
|
Object.defineProperty(exports, "toProductGid", { enumerable: true, get: function () { return client_1.toProductGid; } });
|
|
50
|
+
var zegoEngine_1 = require("./zegoEngine");
|
|
51
|
+
Object.defineProperty(exports, "ZegoLoginError", { enumerable: true, get: function () { return zegoEngine_1.ZegoLoginError; } });
|
|
52
|
+
Object.defineProperty(exports, "JOIN_ATTEMPTS", { enumerable: true, get: function () { return zegoEngine_1.JOIN_ATTEMPTS; } });
|
|
53
|
+
Object.defineProperty(exports, "JOIN_RETRY_BASE_MS", { enumerable: true, get: function () { return zegoEngine_1.JOIN_RETRY_BASE_MS; } });
|
|
45
54
|
// Pure mappers and helpers, usable without configuring the client — handy for replay reducers and tests.
|
|
46
55
|
var streams_1 = require("./streams");
|
|
47
56
|
Object.defineProperty(exports, "toLiveStream", { enumerable: true, get: function () { return streams_1.toLiveStream; } });
|
|
@@ -53,6 +62,21 @@ var polls_1 = require("./polls");
|
|
|
53
62
|
Object.defineProperty(exports, "toLivePoll", { enumerable: true, get: function () { return polls_1.toLivePoll; } });
|
|
54
63
|
Object.defineProperty(exports, "toLivePollResults", { enumerable: true, get: function () { return polls_1.toLivePollResults; } });
|
|
55
64
|
Object.defineProperty(exports, "toEmbeddedResults", { enumerable: true, get: function () { return polls_1.toEmbeddedResults; } });
|
|
65
|
+
var wire_1 = require("./wire");
|
|
66
|
+
Object.defineProperty(exports, "imageUrl", { enumerable: true, get: function () { return wire_1.imageUrl; } });
|
|
67
|
+
Object.defineProperty(exports, "toPinnedComment", { enumerable: true, get: function () { return wire_1.toPinnedComment; } });
|
|
68
|
+
var commentHistory_1 = require("./commentHistory");
|
|
69
|
+
Object.defineProperty(exports, "toCommentHistory", { enumerable: true, get: function () { return commentHistory_1.toCommentHistory; } });
|
|
70
|
+
Object.defineProperty(exports, "mergeCommentHistory", { enumerable: true, get: function () { return commentHistory_1.mergeCommentHistory; } });
|
|
71
|
+
Object.defineProperty(exports, "COMMENT_HISTORY_WINDOW", { enumerable: true, get: function () { return commentHistory_1.COMMENT_HISTORY_WINDOW; } });
|
|
72
|
+
Object.defineProperty(exports, "HOST_SELF_NAME", { enumerable: true, get: function () { return commentHistory_1.HOST_SELF_NAME; } });
|
|
73
|
+
var giveawayRoster_1 = require("./giveawayRoster");
|
|
74
|
+
Object.defineProperty(exports, "GIVEAWAY_ROSTER_RETRY_MS", { enumerable: true, get: function () { return giveawayRoster_1.GIVEAWAY_ROSTER_RETRY_MS; } });
|
|
75
|
+
Object.defineProperty(exports, "GIVEAWAY_ROSTER_WAIT_MS", { enumerable: true, get: function () { return giveawayRoster_1.GIVEAWAY_ROSTER_WAIT_MS; } });
|
|
76
|
+
Object.defineProperty(exports, "giveawayForLot", { enumerable: true, get: function () { return giveawayRoster_1.giveawayForLot; } });
|
|
77
|
+
Object.defineProperty(exports, "rosterFromRecord", { enumerable: true, get: function () { return giveawayRoster_1.rosterFromRecord; } });
|
|
78
|
+
Object.defineProperty(exports, "winnerIdFromRecord", { enumerable: true, get: function () { return giveawayRoster_1.winnerIdFromRecord; } });
|
|
79
|
+
Object.defineProperty(exports, "isYourGiveawayWin", { enumerable: true, get: function () { return giveawayRoster_1.isYourGiveawayWin; } });
|
|
56
80
|
var guest_1 = require("./guest");
|
|
57
81
|
Object.defineProperty(exports, "toMixerLayout", { enumerable: true, get: function () { return guest_1.toMixerLayout; } });
|
|
58
82
|
var flags_1 = require("./flags");
|
|
@@ -74,15 +98,74 @@ Object.defineProperty(exports, "hasCommentLink", { enumerable: true, get: functi
|
|
|
74
98
|
Object.defineProperty(exports, "classifyCommentLink", { enumerable: true, get: function () { return commentLinks_1.classifyCommentLink; } });
|
|
75
99
|
Object.defineProperty(exports, "toUrlPreview", { enumerable: true, get: function () { return commentLinks_1.toUrlPreview; } });
|
|
76
100
|
Object.defineProperty(exports, "displayHost", { enumerable: true, get: function () { return commentLinks_1.displayHost; } });
|
|
101
|
+
// A store on @tiledev/sdk-shopify (0.9.0, "SDK move 4"): the commerce adapter, the identity, and the
|
|
102
|
+
// cart's giveaway-prize helpers. Plain functions on the app's own client and customer: nothing of
|
|
103
|
+
// sdk-shopify is loaded here.
|
|
104
|
+
var shopifyCommerce_1 = require("./shopifyCommerce");
|
|
105
|
+
Object.defineProperty(exports, "createShopifyLiveCommerce", { enumerable: true, get: function () { return shopifyCommerce_1.createShopifyLiveCommerce; } });
|
|
106
|
+
Object.defineProperty(exports, "liveProductFromShopify", { enumerable: true, get: function () { return shopifyCommerce_1.liveProductFromShopify; } });
|
|
107
|
+
Object.defineProperty(exports, "chargedVariantId", { enumerable: true, get: function () { return shopifyCommerce_1.chargedVariantId; } });
|
|
108
|
+
Object.defineProperty(exports, "AUCTION_CART_SOURCE_TYPE", { enumerable: true, get: function () { return shopifyCommerce_1.AUCTION_CART_SOURCE_TYPE; } });
|
|
109
|
+
Object.defineProperty(exports, "WINNING_BID_KEY", { enumerable: true, get: function () { return shopifyCommerce_1.WINNING_BID_KEY; } });
|
|
110
|
+
Object.defineProperty(exports, "WIN_INDEX_KEY", { enumerable: true, get: function () { return shopifyCommerce_1.WIN_INDEX_KEY; } });
|
|
111
|
+
var shopifyIdentity_1 = require("./shopifyIdentity");
|
|
112
|
+
Object.defineProperty(exports, "createShopifyLiveIdentity", { enumerable: true, get: function () { return shopifyIdentity_1.createShopifyLiveIdentity; } });
|
|
113
|
+
var giveawayPrizeLines_1 = require("./giveawayPrizeLines");
|
|
114
|
+
Object.defineProperty(exports, "GIVEAWAY_PRIZE_KEYS", { enumerable: true, get: function () { return giveawayPrizeLines_1.GIVEAWAY_PRIZE_KEYS; } });
|
|
115
|
+
Object.defineProperty(exports, "isGiveawayPrizeLine", { enumerable: true, get: function () { return giveawayPrizeLines_1.isGiveawayPrizeLine; } });
|
|
116
|
+
Object.defineProperty(exports, "prizeLinePrice", { enumerable: true, get: function () { return giveawayPrizeLines_1.prizeLinePrice; } });
|
|
117
|
+
// The live show helpers (0.9.0, "SDK move 5"): rules every live app kept its own copy of. Pure, so an
|
|
118
|
+
// app's own tests can load them from `dist` (`hiddenShows`, `showNames`, `liveShow`, `showLots`,
|
|
119
|
+
// `showLinks`) without the native engine.
|
|
120
|
+
var hiddenShows_1 = require("./hiddenShows");
|
|
121
|
+
Object.defineProperty(exports, "isHiddenFrom", { enumerable: true, get: function () { return hiddenShows_1.isHiddenFrom; } });
|
|
122
|
+
Object.defineProperty(exports, "isHiddenShow", { enumerable: true, get: function () { return hiddenShows_1.isHiddenShow; } });
|
|
123
|
+
Object.defineProperty(exports, "seesHiddenShows", { enumerable: true, get: function () { return hiddenShows_1.seesHiddenShows; } });
|
|
124
|
+
Object.defineProperty(exports, "withoutHiddenShows", { enumerable: true, get: function () { return hiddenShows_1.withoutHiddenShows; } });
|
|
125
|
+
var showNames_1 = require("./showNames");
|
|
126
|
+
Object.defineProperty(exports, "publicName", { enumerable: true, get: function () { return showNames_1.publicName; } });
|
|
127
|
+
Object.defineProperty(exports, "firstNameOf", { enumerable: true, get: function () { return showNames_1.firstNameOf; } });
|
|
128
|
+
Object.defineProperty(exports, "viewerNameFor", { enumerable: true, get: function () { return showNames_1.viewerNameFor; } });
|
|
129
|
+
Object.defineProperty(exports, "sameRoomName", { enumerable: true, get: function () { return showNames_1.sameRoomName; } });
|
|
130
|
+
var liveShow_1 = require("./liveShow");
|
|
131
|
+
Object.defineProperty(exports, "liveShowFor", { enumerable: true, get: function () { return liveShow_1.liveShowFor; } });
|
|
132
|
+
Object.defineProperty(exports, "canPlayInCard", { enumerable: true, get: function () { return liveShow_1.canPlayInCard; } });
|
|
133
|
+
var showLots_1 = require("./showLots");
|
|
134
|
+
Object.defineProperty(exports, "featuredFirst", { enumerable: true, get: function () { return showLots_1.featuredFirst; } });
|
|
135
|
+
Object.defineProperty(exports, "withLotFieldsFromRecord", { enumerable: true, get: function () { return showLots_1.withLotFieldsFromRecord; } });
|
|
136
|
+
var showLinks_1 = require("./showLinks");
|
|
137
|
+
Object.defineProperty(exports, "showLinkDestination", { enumerable: true, get: function () { return showLinks_1.showLinkDestination; } });
|
|
138
|
+
// The bid and giveaway flows' rules (0.9.0, "SDK move 8"). Pure, so an app's own tests can load them
|
|
139
|
+
// from `dist` (`auctionRules`, `auctionComments`, `giveawayPrize`) without the native engine.
|
|
140
|
+
var auctionRules_1 = require("./auctionRules");
|
|
141
|
+
Object.defineProperty(exports, "bidRefusal", { enumerable: true, get: function () { return auctionRules_1.bidRefusal; } });
|
|
142
|
+
Object.defineProperty(exports, "quickBids", { enumerable: true, get: function () { return auctionRules_1.quickBids; } });
|
|
143
|
+
Object.defineProperty(exports, "winChance", { enumerable: true, get: function () { return auctionRules_1.winChance; } });
|
|
144
|
+
Object.defineProperty(exports, "lotStateFor", { enumerable: true, get: function () { return auctionRules_1.lotStateFor; } });
|
|
145
|
+
Object.defineProperty(exports, "isYourWin", { enumerable: true, get: function () { return auctionRules_1.isYourWin; } });
|
|
146
|
+
Object.defineProperty(exports, "BID_ON_ITS_WAY_MS", { enumerable: true, get: function () { return auctionRules_1.BID_ON_ITS_WAY_MS; } });
|
|
147
|
+
Object.defineProperty(exports, "QUICK_BID_STEPS", { enumerable: true, get: function () { return auctionRules_1.QUICK_BID_STEPS; } });
|
|
148
|
+
Object.defineProperty(exports, "VERY_HIGH_CHANCE_OVER", { enumerable: true, get: function () { return auctionRules_1.VERY_HIGH_CHANCE_OVER; } });
|
|
149
|
+
Object.defineProperty(exports, "GOOD_CHANCE_OVER", { enumerable: true, get: function () { return auctionRules_1.GOOD_CHANCE_OVER; } });
|
|
150
|
+
Object.defineProperty(exports, "openingBidFor", { enumerable: true, get: function () { return auctionRules_1.openingBidFor; } });
|
|
151
|
+
var auctionComments_1 = require("./auctionComments");
|
|
152
|
+
Object.defineProperty(exports, "classifyComment", { enumerable: true, get: function () { return auctionComments_1.classifyComment; } });
|
|
153
|
+
var giveawayPrize_1 = require("./giveawayPrize");
|
|
154
|
+
Object.defineProperty(exports, "isTheVariant", { enumerable: true, get: function () { return giveawayPrize_1.isTheVariant; } });
|
|
155
|
+
Object.defineProperty(exports, "givenAwayVariant", { enumerable: true, get: function () { return giveawayPrize_1.givenAwayVariant; } });
|
|
77
156
|
// The session state machine — pure, and usable without React for tests or a custom host.
|
|
78
157
|
var session_1 = require("./session");
|
|
79
158
|
Object.defineProperty(exports, "sessionReducer", { enumerable: true, get: function () { return session_1.sessionReducer; } });
|
|
80
159
|
Object.defineProperty(exports, "initialSessionState", { enumerable: true, get: function () { return session_1.initialSessionState; } });
|
|
81
160
|
Object.defineProperty(exports, "deriveStatus", { enumerable: true, get: function () { return session_1.deriveStatus; } });
|
|
82
|
-
Object.defineProperty(exports, "
|
|
83
|
-
Object.defineProperty(exports, "
|
|
161
|
+
Object.defineProperty(exports, "roundClosesAt", { enumerable: true, get: function () { return session_1.roundClosesAt; } });
|
|
162
|
+
Object.defineProperty(exports, "nextExpiryAt", { enumerable: true, get: function () { return session_1.nextExpiryAt; } });
|
|
163
|
+
Object.defineProperty(exports, "isNothingOnAir", { enumerable: true, get: function () { return session_1.isNothingOnAir; } });
|
|
164
|
+
Object.defineProperty(exports, "withOffAirSettled", { enumerable: true, get: function () { return session_1.withOffAirSettled; } });
|
|
165
|
+
Object.defineProperty(exports, "isTheEndedGiveaway", { enumerable: true, get: function () { return session_1.isTheEndedGiveaway; } });
|
|
84
166
|
Object.defineProperty(exports, "SOLD_CARD_MS", { enumerable: true, get: function () { return session_1.SOLD_CARD_MS; } });
|
|
85
167
|
Object.defineProperty(exports, "REACTION_MS", { enumerable: true, get: function () { return session_1.REACTION_MS; } });
|
|
168
|
+
Object.defineProperty(exports, "CART_CARD_MS", { enumerable: true, get: function () { return session_1.CART_CARD_MS; } });
|
|
86
169
|
var sessionTypes_1 = require("./sessionTypes");
|
|
87
170
|
Object.defineProperty(exports, "capabilitiesFor", { enumerable: true, get: function () { return sessionTypes_1.capabilitiesFor; } });
|
|
88
171
|
Object.defineProperty(exports, "LIVE_CAPABILITIES", { enumerable: true, get: function () { return sessionTypes_1.LIVE_CAPABILITIES; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { LivePipMode, LiveSessionCapabilities, LiveSessionStatus } from './sessionTypes';
|
|
2
|
+
import type { LiveStream } from './types';
|
|
3
|
+
/** Where a show stands for its screen: the session's status, with `loading` read as joining. */
|
|
4
|
+
export type LiveShowStatus = Exclude<LiveSessionStatus, 'loading'>;
|
|
5
|
+
export interface LiveShow {
|
|
6
|
+
/**
|
|
7
|
+
* The session's record once it is this show's; null before then (the session may still hold the last
|
|
8
|
+
* show's), and for a show hidden from this viewer (`hiddenShows`), whose record the session never holds.
|
|
9
|
+
*/
|
|
10
|
+
show: LiveStream | null;
|
|
11
|
+
/**
|
|
12
|
+
* `connecting` until the session holds this show's record (or while it is loading it), then the
|
|
13
|
+
* session's own status. `ended` at once when the session has settled on nothing at all.
|
|
14
|
+
*/
|
|
15
|
+
status: LiveShowStatus;
|
|
16
|
+
/** Playing, or waiting for its host (camera off): what the room's controls show for. */
|
|
17
|
+
onAir: boolean;
|
|
18
|
+
/** The controls this show calls for (`capabilitiesFor(show)`): an auction can bid. */
|
|
19
|
+
capabilities: LiveSessionCapabilities;
|
|
20
|
+
}
|
|
21
|
+
/** What `liveShowFor` reads of the session. */
|
|
22
|
+
export interface SessionForShow {
|
|
23
|
+
stream: LiveStream | null;
|
|
24
|
+
status: LiveSessionStatus;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The show `streamingId` names, as the session holds it. With no id (an empty one included), whatever
|
|
28
|
+
* show the session holds.
|
|
29
|
+
*/
|
|
30
|
+
export declare function liveShowFor(session: SessionForShow, streamingId: string | null | undefined): LiveShow;
|
|
31
|
+
/** What `canPlayInCard` reads of the session. */
|
|
32
|
+
export interface SessionForCard {
|
|
33
|
+
stream: {
|
|
34
|
+
streamingId: string;
|
|
35
|
+
} | null;
|
|
36
|
+
status: LiveSessionStatus;
|
|
37
|
+
pipMode: LivePipMode;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Whether a card showing a show on air (a muted preview, on a home rail or a list of shows) may take
|
|
41
|
+
* the room's picture now (`LiveVideoTarget`'s `active`). All of:
|
|
42
|
+
*
|
|
43
|
+
* - the session is in that show's room, and playing;
|
|
44
|
+
* - no bubble or system window has the picture (`pipMode` is `'none'`);
|
|
45
|
+
* - the card's screen is on show (`screenOnShow`: `useIsFocused()`), so of several cards only the
|
|
46
|
+
* focused screen's claims, and none while another screen is over them.
|
|
47
|
+
*
|
|
48
|
+
* Only one mounted target should claim the picture at a time; this is a card's share of that rule.
|
|
49
|
+
* A show hidden from this viewer never plays: the session never joins its room.
|
|
50
|
+
*/
|
|
51
|
+
export declare function canPlayInCard({ session, show, screenOnShow, }: {
|
|
52
|
+
session: SessionForCard;
|
|
53
|
+
show: {
|
|
54
|
+
streamingId: string;
|
|
55
|
+
} | null | undefined;
|
|
56
|
+
screenOnShow: boolean;
|
|
57
|
+
}): boolean;
|
|
58
|
+
//# sourceMappingURL=liveShow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveShow.d.ts","sourceRoot":"","sources":["../src/liveShow.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C,gGAAgG;AAChG,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB;;;OAGG;IACH,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IACxB;;;OAGG;IACH,MAAM,EAAE,cAAc,CAAC;IACvB,wFAAwF;IACxF,KAAK,EAAE,OAAO,CAAC;IACf,sFAAsF;IACtF,YAAY,EAAE,uBAAuB,CAAC;CACvC;AAED,+CAA+C;AAC/C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1B,MAAM,EAAE,iBAAiB,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,CAarG;AAED,iDAAiD;AACjD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,IAAI,EACJ,YAAY,GACb,EAAE;IACD,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,YAAY,EAAE,OAAO,CAAC;CACvB,GAAG,OAAO,CAGV"}
|
package/dist/liveShow.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.liveShowFor = liveShowFor;
|
|
4
|
+
exports.canPlayInCard = canPlayInCard;
|
|
5
|
+
/**
|
|
6
|
+
* The show a screen is about, read off the app's one session (0.9.0).
|
|
7
|
+
*
|
|
8
|
+
* The session is app-wide and follows one show at a time. A screen opened for a named show (a push,
|
|
9
|
+
* a link, a tap on a card) pins it with `holdStream(streamingId)`, and for a moment after that the
|
|
10
|
+
* session can still hold the LAST show's record: every screen of a show has to ask "is the session's
|
|
11
|
+
* record mine yet?" before it draws anything from it. amore-v2 asked it in four hooks and Freckled
|
|
12
|
+
* Poppy in its Live screen; `liveShowFor` is that question, answered once.
|
|
13
|
+
*
|
|
14
|
+
* Pure, so it loads in plain Node for tests and in an app's own test runner. `useLiveShow` is the hook.
|
|
15
|
+
*/
|
|
16
|
+
const sessionTypes_1 = require("./sessionTypes");
|
|
17
|
+
/**
|
|
18
|
+
* The show `streamingId` names, as the session holds it. With no id (an empty one included), whatever
|
|
19
|
+
* show the session holds.
|
|
20
|
+
*/
|
|
21
|
+
function liveShowFor(session, streamingId) {
|
|
22
|
+
const held = session.stream;
|
|
23
|
+
const show = held && (!streamingId || held.streamingId === streamingId) ? held : null;
|
|
24
|
+
let status;
|
|
25
|
+
// Not this show's record yet: joining, unless there is no record at all and the session has settled on "ended".
|
|
26
|
+
if (!show)
|
|
27
|
+
status = !held && session.status === 'ended' ? 'ended' : 'connecting';
|
|
28
|
+
else
|
|
29
|
+
status = session.status === 'loading' ? 'connecting' : session.status;
|
|
30
|
+
return {
|
|
31
|
+
show,
|
|
32
|
+
status,
|
|
33
|
+
onAir: status === 'playing' || status === 'waitingForHost',
|
|
34
|
+
capabilities: (0, sessionTypes_1.capabilitiesFor)(show),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Whether a card showing a show on air (a muted preview, on a home rail or a list of shows) may take
|
|
39
|
+
* the room's picture now (`LiveVideoTarget`'s `active`). All of:
|
|
40
|
+
*
|
|
41
|
+
* - the session is in that show's room, and playing;
|
|
42
|
+
* - no bubble or system window has the picture (`pipMode` is `'none'`);
|
|
43
|
+
* - the card's screen is on show (`screenOnShow`: `useIsFocused()`), so of several cards only the
|
|
44
|
+
* focused screen's claims, and none while another screen is over them.
|
|
45
|
+
*
|
|
46
|
+
* Only one mounted target should claim the picture at a time; this is a card's share of that rule.
|
|
47
|
+
* A show hidden from this viewer never plays: the session never joins its room.
|
|
48
|
+
*/
|
|
49
|
+
function canPlayInCard({ session, show, screenOnShow, }) {
|
|
50
|
+
var _a;
|
|
51
|
+
if (!show || !screenOnShow)
|
|
52
|
+
return false;
|
|
53
|
+
return ((_a = session.stream) === null || _a === void 0 ? void 0 : _a.streamingId) === show.streamingId && session.pipMode === 'none' && session.status === 'playing';
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=liveShow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"liveShow.js","sourceRoot":"","sources":["../src/liveShow.ts"],"names":[],"mappings":";;AA6CA,kCAaC;AAqBD,sCAWC;AA1FD;;;;;;;;;;GAUG;AACH,iDAAiD;AA8BjD;;;GAGG;AACH,SAAgB,WAAW,CAAC,OAAuB,EAAE,WAAsC;IACzF,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACtF,IAAI,MAAsB,CAAC;IAC3B,gHAAgH;IAChH,IAAI,CAAC,IAAI;QAAE,MAAM,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;;QAC5E,MAAM,GAAG,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IAC3E,OAAO;QACL,IAAI;QACJ,MAAM;QACN,KAAK,EAAE,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,gBAAgB;QAC1D,YAAY,EAAE,IAAA,8BAAe,EAAC,IAAI,CAAC;KACpC,CAAC;AACJ,CAAC;AASD;;;;;;;;;;;GAWG;AACH,SAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,IAAI,EACJ,YAAY,GAKb;;IACC,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IACzC,OAAO,CAAA,MAAA,OAAO,CAAC,MAAM,0CAAE,WAAW,MAAK,IAAI,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;AACxH,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Two questions the session asks about the system picture-in-picture window, kept pure so they are
|
|
3
|
+
* tested without a device.
|
|
4
|
+
*/
|
|
5
|
+
import type { LivePipMode } from './sessionTypes';
|
|
6
|
+
/**
|
|
7
|
+
* How long after the session disarms that a window opening is still counted as the one it armed.
|
|
8
|
+
* The same beat the session gives the OS to grant a window (`PIP_GRANT_MS`).
|
|
9
|
+
*/
|
|
10
|
+
export declare const PIP_DISARM_GRACE_MS = 1200;
|
|
11
|
+
export interface PipWindowContext {
|
|
12
|
+
/** `Platform.OS`. */
|
|
13
|
+
platform: string;
|
|
14
|
+
pipMode: LivePipMode;
|
|
15
|
+
/** A mounted `LiveVideoTarget` with `autoPip` holds the handover. */
|
|
16
|
+
handoverWanted: boolean;
|
|
17
|
+
/** What the session last told `livePip.setArmed`. */
|
|
18
|
+
armed: boolean;
|
|
19
|
+
/** When the session last went from armed to disarmed (epoch ms), or 0 if it never has. */
|
|
20
|
+
disarmedAt: number;
|
|
21
|
+
now: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Whether a system window that just opened (`onPipStart`) is this live session's.
|
|
25
|
+
*
|
|
26
|
+
* On iOS the window is fed by the session's own frame pipeline, so it is ours exactly when a surface
|
|
27
|
+
* is up for it — the in-app bubble, or a player holding the handover.
|
|
28
|
+
*
|
|
29
|
+
* On **Android** the window IS the activity, and the OS opens it by itself off the arm the session
|
|
30
|
+
* set. By the time `onPipStart` reaches JavaScript the player has often already let go of the
|
|
31
|
+
* handover (navigation or focus moved in the same instant), so the old test — bubble or handover —
|
|
32
|
+
* said "not ours", `pipMode` never became `system`, and then the window's close button did not stop
|
|
33
|
+
* playback and its expand button did not open the player (Freckled Poppy, Android 16). The arm state
|
|
34
|
+
* decides instead: armed now, or disarmed within `PIP_DISARM_GRACE_MS`. Anything else minimising into
|
|
35
|
+
* a window — a replay's own player — was never armed by this session and stays not ours.
|
|
36
|
+
*/
|
|
37
|
+
export declare function ownsSystemPipWindow(context: PipWindowContext): boolean;
|
|
38
|
+
/** Where the picture can be when no system window holds it: the in-app bubble, or a full-screen player. */
|
|
39
|
+
export type PlaceBeforeTheWindow = Exclude<LivePipMode, 'system'>;
|
|
40
|
+
/**
|
|
41
|
+
* Where the system window that just opened took the picture from, so coming back puts it there again:
|
|
42
|
+
* the in-app bubble (`'inapp'`) if it was up, otherwise a full-screen player (`'none'`).
|
|
43
|
+
*
|
|
44
|
+
* `rememberedBefore` is kept when the session already counts the window as up (`'system'`): a second
|
|
45
|
+
* start for one window must not forget where the first one came from.
|
|
46
|
+
*/
|
|
47
|
+
export declare function whereTheWindowCameFrom(pipModeAsItOpened: LivePipMode, rememberedBefore: PlaceBeforeTheWindow): PlaceBeforeTheWindow;
|
|
48
|
+
export interface ArmContext {
|
|
49
|
+
pipMode: LivePipMode;
|
|
50
|
+
/** A mounted `LiveVideoTarget` with `autoPip` holds the handover (the full-screen player). */
|
|
51
|
+
handoverWanted: boolean;
|
|
52
|
+
/** The session's status: a window is offered only for a picture that is playing. */
|
|
53
|
+
status: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Whether the OS may open its window when the app is put away.
|
|
57
|
+
*
|
|
58
|
+
* Only while there is a picture to hand over: the in-app bubble or a full-screen player holding the
|
|
59
|
+
* show, and the show `playing`. Joining, waiting for the host (camera off) and ended have no picture,
|
|
60
|
+
* and a window of them is an empty black box; the app is simply put away, and the session stops
|
|
61
|
+
* playback after `PIP_GRANT_MS` as it does whenever no window comes. Once the window is up it stays
|
|
62
|
+
* armed whatever the status does: disarming tears the window down on iOS, and a host stepping off
|
|
63
|
+
* camera for a moment is no reason to close it (the session leaves `system` itself when the show ends).
|
|
64
|
+
*/
|
|
65
|
+
export declare function shouldArmSystemWindow(context: ArmContext): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Whether the app came back to the foreground with this session's window still up.
|
|
68
|
+
*
|
|
69
|
+
* iOS only. Expanding the window raises `onPipRestore`; whether coming back by the app's own icon (or a
|
|
70
|
+
* notification) does the same is iOS's choice, not ours. When it does not, the window would float over
|
|
71
|
+
* the app with the show in it while the app's own surface stood aside, so the session takes the window
|
|
72
|
+
* down itself and gives the picture back. If the restore and the return both arrive, whichever comes
|
|
73
|
+
* second finds the window already handed back and does nothing. Never on Android: there the window IS the app, and
|
|
74
|
+
* `AppState` reads `active` for as long as the window is up (`LivePipModule.keepRenderingWhileInPip`).
|
|
75
|
+
*/
|
|
76
|
+
export declare function isWindowStillUpOnReturn(platform: string, pipMode: LivePipMode): boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Whether an `onPipError` says the device has no picture-in-picture at all (L21).
|
|
79
|
+
*
|
|
80
|
+
* The native module answers every arming on such an Android device with this error, so a session that
|
|
81
|
+
* reported it at `error` level filed a crash report each time the bubble opened. It is a fact about
|
|
82
|
+
* the device, said once, and the session stops arming after it.
|
|
83
|
+
*/
|
|
84
|
+
export declare function isPipUnavailableMessage(message: unknown): boolean;
|
|
85
|
+
//# sourceMappingURL=pipWindow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipWindow.d.ts","sourceRoot":"","sources":["../src/pipWindow.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,OAAQ,CAAC;AAEzC,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,qEAAqE;IACrE,cAAc,EAAE,OAAO,CAAC;IACxB,qDAAqD;IACrD,KAAK,EAAE,OAAO,CAAC;IACf,0FAA0F;IAC1F,UAAU,EAAE,MAAM,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAKtE;AAED,2GAA2G;AAC3G,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,WAAW,EAC9B,gBAAgB,EAAE,oBAAoB,GACrC,oBAAoB,CAGtB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,8FAA8F;IAC9F,cAAc,EAAE,OAAO,CAAC;IACxB,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAIlE;AAED;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAEvF;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEjE"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PIP_DISARM_GRACE_MS = void 0;
|
|
4
|
+
exports.ownsSystemPipWindow = ownsSystemPipWindow;
|
|
5
|
+
exports.whereTheWindowCameFrom = whereTheWindowCameFrom;
|
|
6
|
+
exports.shouldArmSystemWindow = shouldArmSystemWindow;
|
|
7
|
+
exports.isWindowStillUpOnReturn = isWindowStillUpOnReturn;
|
|
8
|
+
exports.isPipUnavailableMessage = isPipUnavailableMessage;
|
|
9
|
+
/**
|
|
10
|
+
* How long after the session disarms that a window opening is still counted as the one it armed.
|
|
11
|
+
* The same beat the session gives the OS to grant a window (`PIP_GRANT_MS`).
|
|
12
|
+
*/
|
|
13
|
+
exports.PIP_DISARM_GRACE_MS = 1200;
|
|
14
|
+
/**
|
|
15
|
+
* Whether a system window that just opened (`onPipStart`) is this live session's.
|
|
16
|
+
*
|
|
17
|
+
* On iOS the window is fed by the session's own frame pipeline, so it is ours exactly when a surface
|
|
18
|
+
* is up for it — the in-app bubble, or a player holding the handover.
|
|
19
|
+
*
|
|
20
|
+
* On **Android** the window IS the activity, and the OS opens it by itself off the arm the session
|
|
21
|
+
* set. By the time `onPipStart` reaches JavaScript the player has often already let go of the
|
|
22
|
+
* handover (navigation or focus moved in the same instant), so the old test — bubble or handover —
|
|
23
|
+
* said "not ours", `pipMode` never became `system`, and then the window's close button did not stop
|
|
24
|
+
* playback and its expand button did not open the player (Freckled Poppy, Android 16). The arm state
|
|
25
|
+
* decides instead: armed now, or disarmed within `PIP_DISARM_GRACE_MS`. Anything else minimising into
|
|
26
|
+
* a window — a replay's own player — was never armed by this session and stays not ours.
|
|
27
|
+
*/
|
|
28
|
+
function ownsSystemPipWindow(context) {
|
|
29
|
+
if (context.pipMode === 'inapp' || context.handoverWanted)
|
|
30
|
+
return true;
|
|
31
|
+
if (context.platform !== 'android')
|
|
32
|
+
return false;
|
|
33
|
+
if (context.armed)
|
|
34
|
+
return true;
|
|
35
|
+
return context.disarmedAt > 0 && context.now - context.disarmedAt <= exports.PIP_DISARM_GRACE_MS;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Where the system window that just opened took the picture from, so coming back puts it there again:
|
|
39
|
+
* the in-app bubble (`'inapp'`) if it was up, otherwise a full-screen player (`'none'`).
|
|
40
|
+
*
|
|
41
|
+
* `rememberedBefore` is kept when the session already counts the window as up (`'system'`): a second
|
|
42
|
+
* start for one window must not forget where the first one came from.
|
|
43
|
+
*/
|
|
44
|
+
function whereTheWindowCameFrom(pipModeAsItOpened, rememberedBefore) {
|
|
45
|
+
if (pipModeAsItOpened === 'system')
|
|
46
|
+
return rememberedBefore;
|
|
47
|
+
return pipModeAsItOpened;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Whether the OS may open its window when the app is put away.
|
|
51
|
+
*
|
|
52
|
+
* Only while there is a picture to hand over: the in-app bubble or a full-screen player holding the
|
|
53
|
+
* show, and the show `playing`. Joining, waiting for the host (camera off) and ended have no picture,
|
|
54
|
+
* and a window of them is an empty black box; the app is simply put away, and the session stops
|
|
55
|
+
* playback after `PIP_GRANT_MS` as it does whenever no window comes. Once the window is up it stays
|
|
56
|
+
* armed whatever the status does: disarming tears the window down on iOS, and a host stepping off
|
|
57
|
+
* camera for a moment is no reason to close it (the session leaves `system` itself when the show ends).
|
|
58
|
+
*/
|
|
59
|
+
function shouldArmSystemWindow(context) {
|
|
60
|
+
if (context.pipMode === 'system')
|
|
61
|
+
return true;
|
|
62
|
+
const surfaceWantsIt = context.pipMode === 'inapp' || context.handoverWanted;
|
|
63
|
+
return surfaceWantsIt && context.status === 'playing';
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Whether the app came back to the foreground with this session's window still up.
|
|
67
|
+
*
|
|
68
|
+
* iOS only. Expanding the window raises `onPipRestore`; whether coming back by the app's own icon (or a
|
|
69
|
+
* notification) does the same is iOS's choice, not ours. When it does not, the window would float over
|
|
70
|
+
* the app with the show in it while the app's own surface stood aside, so the session takes the window
|
|
71
|
+
* down itself and gives the picture back. If the restore and the return both arrive, whichever comes
|
|
72
|
+
* second finds the window already handed back and does nothing. Never on Android: there the window IS the app, and
|
|
73
|
+
* `AppState` reads `active` for as long as the window is up (`LivePipModule.keepRenderingWhileInPip`).
|
|
74
|
+
*/
|
|
75
|
+
function isWindowStillUpOnReturn(platform, pipMode) {
|
|
76
|
+
return platform === 'ios' && pipMode === 'system';
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Whether an `onPipError` says the device has no picture-in-picture at all (L21).
|
|
80
|
+
*
|
|
81
|
+
* The native module answers every arming on such an Android device with this error, so a session that
|
|
82
|
+
* reported it at `error` level filed a crash report each time the bubble opened. It is a fact about
|
|
83
|
+
* the device, said once, and the session stops arming after it.
|
|
84
|
+
*/
|
|
85
|
+
function isPipUnavailableMessage(message) {
|
|
86
|
+
return typeof message === 'string' && /not available on this device/i.test(message);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=pipWindow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipWindow.js","sourceRoot":"","sources":["../src/pipWindow.ts"],"names":[],"mappings":";;;AAuCA,kDAKC;AAYD,wDAMC;AAoBD,sDAIC;AAYD,0DAEC;AASD,0DAEC;AAzGD;;;GAGG;AACU,QAAA,mBAAmB,GAAG,IAAK,CAAC;AAezC;;;;;;;;;;;;;GAaG;AACH,SAAgB,mBAAmB,CAAC,OAAyB;IAC3D,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc;QAAE,OAAO,IAAI,CAAC;IACvE,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACjD,IAAI,OAAO,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAC/B,OAAO,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,2BAAmB,CAAC;AAC3F,CAAC;AAKD;;;;;;GAMG;AACH,SAAgB,sBAAsB,CACpC,iBAA8B,EAC9B,gBAAsC;IAEtC,IAAI,iBAAiB,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC;IAC5D,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAUD;;;;;;;;;GASG;AACH,SAAgB,qBAAqB,CAAC,OAAmB;IACvD,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAC7E,OAAO,cAAc,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC;AACxD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,uBAAuB,CAAC,QAAgB,EAAE,OAAoB;IAC5E,OAAO,QAAQ,KAAK,KAAK,IAAI,OAAO,KAAK,QAAQ,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,uBAAuB,CAAC,OAAgB;IACtD,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtF,CAAC"}
|
package/dist/polls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polls.d.ts","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAkB,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnF,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"polls.d.ts","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,QAAQ,EAAkB,eAAe,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAYnF,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CA+BxD;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAoBtE;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAGtE;AAqBD,eAAO,MAAM,KAAK,EAAE,QA6BnB,CAAC"}
|
package/dist/polls.js
CHANGED
|
@@ -55,6 +55,9 @@ function toLivePoll(raw) {
|
|
|
55
55
|
question: (_c = (0, wire_1.str)((0, wire_1.get)(wire, 'question'))) !== null && _c !== void 0 ? _c : '',
|
|
56
56
|
options,
|
|
57
57
|
wireOptionIds,
|
|
58
|
+
// The record keeps its last poll after it closes; the session raises one off the record only while
|
|
59
|
+
// this says "active" (or says nothing).
|
|
60
|
+
status: (0, wire_1.str)((0, wire_1.get)(wire, 'status')),
|
|
58
61
|
};
|
|
59
62
|
}
|
|
60
63
|
function toLivePollResults(raw) {
|
package/dist/polls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polls.js","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":";;;AA+BA,
|
|
1
|
+
{"version":3,"file":"polls.js","sourceRoot":"","sources":["../src/polls.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,13 +4,22 @@ export interface LiveSellingContextType {
|
|
|
4
4
|
ready: boolean;
|
|
5
5
|
error: string | null;
|
|
6
6
|
client: LiveSellingClient;
|
|
7
|
+
/** The signed-in viewer's email (`LiveSellingProvider`'s `viewerEmail`), or null. Since 0.9.0. */
|
|
8
|
+
viewerEmail: string | null;
|
|
7
9
|
}
|
|
8
10
|
export interface LiveSellingProviderProps {
|
|
9
11
|
children: ReactNode;
|
|
10
12
|
config: LiveSellingConfig;
|
|
11
13
|
/** Every live-engine event, for a host that wants to react without subscribing to the engine. */
|
|
12
14
|
onEvent?: (event: LiveEvent) => void;
|
|
15
|
+
/**
|
|
16
|
+
* The signed-in shopper's email, or null when signed out (0.9.0). Decides which hidden shows they
|
|
17
|
+
* see (`config.hiddenShows`): every hook that hands out shows reads it from here, so a show can't be
|
|
18
|
+
* hidden on one screen and shown on another. A prop, so a sign-in or sign-out reaches every hook at
|
|
19
|
+
* once. Only matters with `hiddenShows` set.
|
|
20
|
+
*/
|
|
21
|
+
viewerEmail?: string | null;
|
|
13
22
|
}
|
|
14
|
-
export declare function LiveSellingProvider({ children, config, onEvent }: LiveSellingProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<LiveSellingContextType | undefined>>;
|
|
23
|
+
export declare function LiveSellingProvider({ children, config, onEvent, viewerEmail }: LiveSellingProviderProps): import("react").FunctionComponentElement<import("react").ProviderProps<LiveSellingContextType | undefined>>;
|
|
15
24
|
export declare function useLiveSelling(): LiveSellingContextType;
|
|
16
25
|
//# sourceMappingURL=LiveSellingProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveSellingProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"LiveSellingProvider.d.ts","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEhF,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,kGAAkG;IAClG,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,iGAAiG;IACjG,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAID,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,wBAAwB,+GA8BvG;AAED,wBAAgB,cAAc,IAAI,sBAAsB,CAIvD"}
|
|
@@ -11,11 +11,14 @@ exports.useLiveSelling = useLiveSelling;
|
|
|
11
11
|
*
|
|
12
12
|
* `onEvent` is a passthrough of the live engine's `LiveEvent` union, so a host can react to comments,
|
|
13
13
|
* bids, sold announcements and co-host signals without subscribing to the engine directly.
|
|
14
|
+
*
|
|
15
|
+
* `viewerEmail` is who is watching, for the hidden shows (`config.hiddenShows`); `useHiddenShows`
|
|
16
|
+
* (its own file) reads it with the rule for the hooks that hand out shows.
|
|
14
17
|
*/
|
|
15
18
|
const react_1 = require("react");
|
|
16
19
|
const liveSelling_1 = require("../liveSelling");
|
|
17
20
|
const LiveSellingContext = (0, react_1.createContext)(undefined);
|
|
18
|
-
function LiveSellingProvider({ children, config, onEvent }) {
|
|
21
|
+
function LiveSellingProvider({ children, config, onEvent, viewerEmail }) {
|
|
19
22
|
const [ready, setReady] = (0, react_1.useState)(false);
|
|
20
23
|
const [error, setError] = (0, react_1.useState)(null);
|
|
21
24
|
(0, react_1.useEffect)(() => {
|
|
@@ -37,7 +40,8 @@ function LiveSellingProvider({ children, config, onEvent }) {
|
|
|
37
40
|
return;
|
|
38
41
|
return liveSelling_1.liveSelling.engine.subscribe(onEvent);
|
|
39
42
|
}, [onEvent]);
|
|
40
|
-
const
|
|
43
|
+
const email = (viewerEmail === null || viewerEmail === void 0 ? void 0 : viewerEmail.trim()) || null;
|
|
44
|
+
const value = (0, react_1.useMemo)(() => ({ ready, error, client: liveSelling_1.liveSelling, viewerEmail: email }), [ready, error, email]);
|
|
41
45
|
return (0, react_1.createElement)(LiveSellingContext.Provider, { value }, children);
|
|
42
46
|
}
|
|
43
47
|
function useLiveSelling() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveSellingProvider.js","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"LiveSellingProvider.js","sourceRoot":"","sources":["../../src/react/LiveSellingProvider.ts"],"names":[],"mappings":";;AA2CA,kDA8BC;AAED,wCAIC;AA/ED;;;;;;;;;;;;GAYG;AACH,iCAA+F;AAG/F,gDAA6C;AAyB7C,MAAM,kBAAkB,GAAG,IAAA,qBAAa,EAAqC,SAAS,CAAC,CAAC;AAExF,SAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAA4B;IACtG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAgB,IAAI,CAAC,CAAC;IAExD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC;YACH,yBAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,mFAAmF;YACnF,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,yDAAyD;QACzD,uDAAuD;IACzD,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAEhE,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,yBAAW,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC/C,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,KAAK,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,EAAE,KAAI,IAAI,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAA,eAAO,EACnB,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,yBAAW,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EACjE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CACtB,CAAC;IAEF,OAAO,IAAA,qBAAa,EAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,CAAC;AACzE,CAAC;AAED,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,IAAA,kBAAU,EAAC,kBAAkB,CAAC,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IACtF,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveVideoTarget.d.ts","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAiB,SAAS,EAAO,MAAM,OAAO,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"LiveVideoTarget.d.ts","sourceRoot":"","sources":["../../src/react/LiveVideoTarget.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAiB,SAAS,EAAO,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAsB,IAAI,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAwBzD,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,SAA4B,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,eAAe,+FAG1B,CAAC;AAEH,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sFAAsF;IACtF,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,KAAK,EACL,OAAe,EACf,KAAK,EACL,QAAQ,GACT,EAAE,oBAAoB,6CAuGtB"}
|