@seatlayer/js 0.47.1 → 0.48.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 +16 -1
- package/dist/{channelsMode-33ZLORVF.js → channelsMode-NCH5GYHN.js} +3 -3
- package/dist/{chunk-X2R4AQSZ.js → chunk-H4OJF6LE.js} +176 -7
- package/dist/chunk-H4OJF6LE.js.map +1 -0
- package/dist/{chunk-DMEFXZIL.js → chunk-KNMZQZXR.js} +2 -2
- package/dist/{chunk-CF5MS7UR.js → chunk-Q5QT3YLA.js} +186 -59
- package/dist/chunk-Q5QT3YLA.js.map +1 -0
- package/dist/index.cjs +851 -96
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +108 -5
- package/dist/index.d.ts +108 -5
- package/dist/index.js +493 -36
- package/dist/index.js.map +1 -1
- package/dist/{manager-CAIPkUYl.d.cts → manager-DEjbKiqJ.d.cts} +200 -17
- package/dist/{manager-CAIPkUYl.d.ts → manager-DEjbKiqJ.d.ts} +200 -17
- package/dist/manager.cjs +358 -62
- package/dist/manager.cjs.map +1 -1
- package/dist/manager.d.cts +1 -1
- package/dist/manager.d.ts +1 -1
- package/dist/manager.js +2 -2
- package/package.json +2 -2
- package/dist/chunk-CF5MS7UR.js.map +0 -1
- package/dist/chunk-X2R4AQSZ.js.map +0 -1
- /package/dist/{channelsMode-33ZLORVF.js.map → channelsMode-NCH5GYHN.js.map} +0 -0
- /package/dist/{chunk-DMEFXZIL.js.map → chunk-KNMZQZXR.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PickerSeat, RendererViewMode, SeatHoverDetails, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
2
2
|
export { ExpandedSeat, SeatHoverDetails } from '@seatlayer/core';
|
|
3
|
-
import { C as ChannelListResult, a as ChannelAllocationPage, b as ChannelRecord, A as AssignmentResult, c as ChannelPreviewProjection, d as ChannelAccessIntent, e as AccessLinkReveal, f as AccessLinkStatusRecord, g as ChannelSeatStatus, B as BucketRow } from './manager-
|
|
4
|
-
export { h as ACCESS_LINK_DEFAULTS, i as AccessIntentForbidsDetails, j as AccessLinkRecord, k as AccessLinkState, l as AccessLinkStatus, m as ArchiveBlockedDetails, n as AssignmentBuckets, o as AssignmentDropDetails, p as ChannelAccessSummary, q as
|
|
3
|
+
import { C as ChannelListResult, a as ChannelAllocationPage, b as ChannelRecord, A as AssignmentResult, c as ChannelPreviewProjection, d as ChannelAccessIntent, e as AccessLinkReveal, f as AccessLinkStatusRecord, g as ChannelSeatStatus, B as BucketRow } from './manager-DEjbKiqJ.cjs';
|
|
4
|
+
export { h as ACCESS_LINK_DEFAULTS, i as AccessIntentForbidsDetails, j as AccessLinkRecord, k as AccessLinkState, l as AccessLinkStatus, m as ArchiveBlockedDetails, n as AssignmentBuckets, o as AssignmentDropDetails, p as ChannelAccessSummary, q as ChannelAttribution, r as ChannelAuditEntry, s as ChannelAuditPage, t as ChannelCounts, u as ChannelReport, v as ChannelReportLinkRecord, w as ChannelReportLinkReveal, x as ChannelReportResult, y as ChannelReportRow, z as ChannelState, D as ControlRoomActivityEntry, E as ControlRoomSectionMetric, F as ControlRoomSnapshot, I as IntentSwitchBlockedDetails, G as InventoryBooking, H as InventoryBookingActivity, J as InventoryBookingDetail, K as InventoryBookingObject, L as InventoryBookingState, M as InventoryBookingsPage, N as InventoryBookingsQuery, O as LogEntry, P as LogPage, Q as ManageApi, R as ManageApiError, S as PUBLIC_CHANNEL_ID, T as PUBLIC_CHANNEL_NAME, U as ReportByStatus, V as ReportCategoryMeta, W as ReportCategoryRow, X as ReportResult, Y as SeatManager, Z as SeatManagerActionResult, _ as SeatManagerActivity, $ as SeatManagerCapability, a0 as SeatManagerConnection, a1 as SeatManagerMode, a2 as SeatManagerOptions, a3 as SeatManagerTallies, a4 as SelectionSourceRow, a5 as accessIntentDescription, a6 as accessIntentLabel, a7 as accessLine, a8 as accessLinkBadge, a9 as accessLinkErrorCopy, aa as accessLinkIsLive, ab as accessLinkPolicyLines, ac as bucketRows, ad as dropReviewRows, ae as intentForbidsCopy, af as intentSwitchBlockedCopy, ag as isPublicChannelId, ah as markerLetter, ai as markerOf, aj as mutationCount, ak as needsMoveConfirmation, al as planAssignment, am as retryAfterCopy, an as selectionSources, ao as stateBadge, ap as suggestMarker } from './manager-DEjbKiqJ.cjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Buyer access context — the browser half of the Sales Channels contract
|
|
@@ -369,8 +369,10 @@ interface ControllerSinkOptions {
|
|
|
369
369
|
declare function createControllerSink(controller: PickerControllerLike, options?: ControllerSinkOptions): RealtimeSink;
|
|
370
370
|
|
|
371
371
|
/**
|
|
372
|
-
* Minimal client for the
|
|
373
|
-
* routes).
|
|
372
|
+
* Minimal client for the browser embed surface of workers/api (the `/pub/*`
|
|
373
|
+
* routes). Platform events bind this client to a buyer access context; Managed
|
|
374
|
+
* public/unlisted events may still use it anonymously. Deliberately
|
|
375
|
+
* self-contained — it does NOT reuse src/lib/api.ts,
|
|
374
376
|
* which bakes in a build-time API base and dashboard session credentials. The
|
|
375
377
|
* SDK runs cross-origin on a third-party ticketing page, so:
|
|
376
378
|
* - apiBase is per-instance (constructor option), not a build constant;
|
|
@@ -1069,6 +1071,59 @@ declare class EmbeddedDesigner {
|
|
|
1069
1071
|
private handleMessage;
|
|
1070
1072
|
}
|
|
1071
1073
|
|
|
1074
|
+
/**
|
|
1075
|
+
* Buyer-safe ticket-offer availability shared by the canonical picker and the
|
|
1076
|
+
* hosted event-page templates.
|
|
1077
|
+
*
|
|
1078
|
+
* This module intentionally owns the wire parser. A hosted page, iframe, popup
|
|
1079
|
+
* and SDK mount must refuse or accept the same payload; duplicating this reader
|
|
1080
|
+
* is how one surface eventually prints a price another surface will not charge.
|
|
1081
|
+
*/
|
|
1082
|
+
type SaleState = 'on-sale' | 'low' | 'sold-out' | 'presale' | 'closed';
|
|
1083
|
+
interface TicketOfferSummary {
|
|
1084
|
+
/** Legacy ordering fields kept for older page templates and payloads. */
|
|
1085
|
+
index: number;
|
|
1086
|
+
count: number;
|
|
1087
|
+
/** Units currently available at this offer price; null means unlimited. */
|
|
1088
|
+
remaining: number | null;
|
|
1089
|
+
/** Buyer-facing fields added by the offers UX. Absent on older workers. */
|
|
1090
|
+
id?: string;
|
|
1091
|
+
name?: string;
|
|
1092
|
+
categoryKey?: string | null;
|
|
1093
|
+
startsAt?: number | null;
|
|
1094
|
+
endsAt?: number | null;
|
|
1095
|
+
}
|
|
1096
|
+
interface TicketOfferPrice {
|
|
1097
|
+
categoryKey: string;
|
|
1098
|
+
/** Major units. What a hold on this category is charged right now. */
|
|
1099
|
+
price: number;
|
|
1100
|
+
/** Major units, or null. Printed only when genuinely higher. */
|
|
1101
|
+
previousPrice: number | null;
|
|
1102
|
+
/** Offer provenance for the price row. Absent on older workers. */
|
|
1103
|
+
offerId?: string;
|
|
1104
|
+
offerName?: string;
|
|
1105
|
+
remaining?: number | null;
|
|
1106
|
+
startsAt?: number | null;
|
|
1107
|
+
endsAt?: number | null;
|
|
1108
|
+
}
|
|
1109
|
+
interface TicketOfferAvailability {
|
|
1110
|
+
state: SaleState;
|
|
1111
|
+
/** Currently advertised offer price, in minor units. */
|
|
1112
|
+
fromPrice: number | null;
|
|
1113
|
+
previousPrice: number | null;
|
|
1114
|
+
currency: string | null;
|
|
1115
|
+
/** The highest-priority active buy offer, when one exists. */
|
|
1116
|
+
release: TicketOfferSummary | null;
|
|
1117
|
+
/** The next scheduled price offer. It does not close ordinary ticket sales. */
|
|
1118
|
+
upcoming: TicketOfferSummary | null;
|
|
1119
|
+
/** Server-resolved active offer prices by category, in major units. */
|
|
1120
|
+
prices: TicketOfferPrice[];
|
|
1121
|
+
}
|
|
1122
|
+
/** Parse a public offer payload without repairing a half-understood price. */
|
|
1123
|
+
declare function parseTicketOfferAvailability(body: unknown): TicketOfferAvailability | null;
|
|
1124
|
+
/** Translate the server-resolved category map into SeatPicker pricing. */
|
|
1125
|
+
declare function ticketOfferPrices(availability: TicketOfferAvailability | null): Record<string, number>;
|
|
1126
|
+
|
|
1072
1127
|
/**
|
|
1073
1128
|
* SeatPicker — the full buyer experience as a widget.
|
|
1074
1129
|
*
|
|
@@ -1298,6 +1353,12 @@ interface SeatPickerOptions {
|
|
|
1298
1353
|
* fall back to the chart price.
|
|
1299
1354
|
*/
|
|
1300
1355
|
pricing?: SeatPickerPricing;
|
|
1356
|
+
/**
|
|
1357
|
+
* Fires when the server-resolved active offer changes. Hosted event pages use
|
|
1358
|
+
* this to keep their headline, sticky bar and the canonical picker on the
|
|
1359
|
+
* same live fact. The picker remains fully functional when it is omitted.
|
|
1360
|
+
*/
|
|
1361
|
+
onOfferAvailabilityChange?: (availability: TicketOfferAvailability | null) => void;
|
|
1301
1362
|
/** Hold TTL in ms passed to hold(); server clamps to its own limits. */
|
|
1302
1363
|
holdTtlMs?: number;
|
|
1303
1364
|
/**
|
|
@@ -1312,6 +1373,13 @@ interface SeatPickerOptions {
|
|
|
1312
1373
|
* owns hold persistence and supplies initialHoldId itself.
|
|
1313
1374
|
*/
|
|
1314
1375
|
restoreHold?: boolean;
|
|
1376
|
+
/**
|
|
1377
|
+
* Render the real chart and live seat statuses without allowing selection,
|
|
1378
|
+
* holds or checkout. This is for venue previews and pre-sale Website pages;
|
|
1379
|
+
* it is enforced by the widget even if the event later opens while mounted.
|
|
1380
|
+
* Default false.
|
|
1381
|
+
*/
|
|
1382
|
+
readOnly?: boolean;
|
|
1315
1383
|
/**
|
|
1316
1384
|
* Confirm mode: tapping a seat shows a confirmation card with section, row,
|
|
1317
1385
|
* seat, category, price and Select/Cancel before it enters the tray. Default
|
|
@@ -1463,6 +1531,8 @@ interface SeatPickerOptions {
|
|
|
1463
1531
|
declare class SeatPicker {
|
|
1464
1532
|
private readonly opts;
|
|
1465
1533
|
private readonly api;
|
|
1534
|
+
/** Authenticated view media, cached only for this picker lifetime. */
|
|
1535
|
+
private readonly buyerAssetUrls;
|
|
1466
1536
|
/** Our own public client, or null when the host injected a transport. */
|
|
1467
1537
|
private readonly pubApi;
|
|
1468
1538
|
/** Null for the ordinary public picker — the tokenless path is untouched. */
|
|
@@ -1472,6 +1542,8 @@ declare class SeatPicker {
|
|
|
1472
1542
|
private readonly apiBase;
|
|
1473
1543
|
private readonly controller;
|
|
1474
1544
|
private readonly maxTickets;
|
|
1545
|
+
/** Original host pricing, kept separate from live server offer overrides. */
|
|
1546
|
+
private readonly hostPricing;
|
|
1475
1547
|
private root;
|
|
1476
1548
|
private mapHost;
|
|
1477
1549
|
private rendered;
|
|
@@ -1482,9 +1554,16 @@ declare class SeatPicker {
|
|
|
1482
1554
|
private ro;
|
|
1483
1555
|
private holdTimer;
|
|
1484
1556
|
private toastTimer;
|
|
1557
|
+
private offerRefreshTimer;
|
|
1558
|
+
/** Armed only when the offer schedule has a known future transition (or as a
|
|
1559
|
+
* bounded retry after a failed read) — never a fixed-cadence poll. */
|
|
1560
|
+
private offerBoundaryTimer;
|
|
1561
|
+
private offerVisibilityHandler;
|
|
1485
1562
|
/** Short-lived UI motion timers; all are cancelled on destroy. */
|
|
1486
1563
|
private motionTimers;
|
|
1487
1564
|
private currency;
|
|
1565
|
+
private eventTimezone;
|
|
1566
|
+
private offerAvailability;
|
|
1488
1567
|
private hold;
|
|
1489
1568
|
/** Latest server expiry for the open hold (moves on extend). */
|
|
1490
1569
|
private holdExpiresAt;
|
|
@@ -1547,6 +1626,8 @@ declare class SeatPicker {
|
|
|
1547
1626
|
private secCardEl;
|
|
1548
1627
|
private viewEl;
|
|
1549
1628
|
private viewCleanup;
|
|
1629
|
+
/** Supersedes an older authored-view byte request when another seat is opened. */
|
|
1630
|
+
private seatViewGen;
|
|
1550
1631
|
private allSeatsCache;
|
|
1551
1632
|
private miniCanvas;
|
|
1552
1633
|
private miniBase;
|
|
@@ -1855,6 +1936,28 @@ declare class SeatPicker {
|
|
|
1855
1936
|
private openSeatView;
|
|
1856
1937
|
private closeSeatView;
|
|
1857
1938
|
private money;
|
|
1939
|
+
/**
|
|
1940
|
+
* Sleep until the offer schedule's next known transition, then re-read.
|
|
1941
|
+
*
|
|
1942
|
+
* A far-away boundary is capped: the wake re-reads, learns the (unchanged)
|
|
1943
|
+
* schedule, and re-arms — so a picker left open for days still tracks an
|
|
1944
|
+
* organizer's schedule edits at a cost of one request every few hours. No
|
|
1945
|
+
* future transition means no timer at all; an event with no releases does
|
|
1946
|
+
* zero background traffic. A wake in a hidden tab fetches nothing — the
|
|
1947
|
+
* visibilitychange handler owns catching that tab up.
|
|
1948
|
+
*/
|
|
1949
|
+
private scheduleOfferBoundary;
|
|
1950
|
+
/** Debounce the no-store offer read behind a burst of seat-status frames. */
|
|
1951
|
+
private scheduleOfferRefresh;
|
|
1952
|
+
/**
|
|
1953
|
+
* Pull the server's resolved answer. A failed refresh keeps the last truthful
|
|
1954
|
+
* answer: flashing back to a chart price while checkout still charges an
|
|
1955
|
+
* offer is worse than a temporarily stale remaining count.
|
|
1956
|
+
*/
|
|
1957
|
+
private refreshOfferAvailability;
|
|
1958
|
+
private offerPrice;
|
|
1959
|
+
/** The compact current/upcoming offer card above Ticket prices. */
|
|
1960
|
+
private syncOffer;
|
|
1858
1961
|
/**
|
|
1859
1962
|
* The price the buyer will actually pay for a category (+tier): the host's
|
|
1860
1963
|
* `pricing` override when present, else the chart's stored price. Every
|
|
@@ -2799,4 +2902,4 @@ declare class ChannelsMode {
|
|
|
2799
2902
|
handleBack(): boolean;
|
|
2800
2903
|
}
|
|
2801
2904
|
|
|
2802
|
-
export { AccessLinkReveal, AccessLinkStatusRecord, ApiError, AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, ChannelAccessIntent, ChannelAllocationPage, ChannelListResult, ChannelPreviewProjection, ChannelRecord, ChannelSeatStatus, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsRowView, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, attachPickerFrame, bucketRowsHtml, createBuyerAccessContext, createControllerSink };
|
|
2905
|
+
export { AccessLinkReveal, AccessLinkStatusRecord, ApiError, AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, ChannelAccessIntent, ChannelAllocationPage, ChannelListResult, ChannelPreviewProjection, ChannelRecord, ChannelSeatStatus, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsRowView, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, type SaleState, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bucketRowsHtml, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PickerSeat, RendererViewMode, SeatHoverDetails, PickerTransport, PickerMapTheme } from '@seatlayer/core';
|
|
2
2
|
export { ExpandedSeat, SeatHoverDetails } from '@seatlayer/core';
|
|
3
|
-
import { C as ChannelListResult, a as ChannelAllocationPage, b as ChannelRecord, A as AssignmentResult, c as ChannelPreviewProjection, d as ChannelAccessIntent, e as AccessLinkReveal, f as AccessLinkStatusRecord, g as ChannelSeatStatus, B as BucketRow } from './manager-
|
|
4
|
-
export { h as ACCESS_LINK_DEFAULTS, i as AccessIntentForbidsDetails, j as AccessLinkRecord, k as AccessLinkState, l as AccessLinkStatus, m as ArchiveBlockedDetails, n as AssignmentBuckets, o as AssignmentDropDetails, p as ChannelAccessSummary, q as
|
|
3
|
+
import { C as ChannelListResult, a as ChannelAllocationPage, b as ChannelRecord, A as AssignmentResult, c as ChannelPreviewProjection, d as ChannelAccessIntent, e as AccessLinkReveal, f as AccessLinkStatusRecord, g as ChannelSeatStatus, B as BucketRow } from './manager-DEjbKiqJ.js';
|
|
4
|
+
export { h as ACCESS_LINK_DEFAULTS, i as AccessIntentForbidsDetails, j as AccessLinkRecord, k as AccessLinkState, l as AccessLinkStatus, m as ArchiveBlockedDetails, n as AssignmentBuckets, o as AssignmentDropDetails, p as ChannelAccessSummary, q as ChannelAttribution, r as ChannelAuditEntry, s as ChannelAuditPage, t as ChannelCounts, u as ChannelReport, v as ChannelReportLinkRecord, w as ChannelReportLinkReveal, x as ChannelReportResult, y as ChannelReportRow, z as ChannelState, D as ControlRoomActivityEntry, E as ControlRoomSectionMetric, F as ControlRoomSnapshot, I as IntentSwitchBlockedDetails, G as InventoryBooking, H as InventoryBookingActivity, J as InventoryBookingDetail, K as InventoryBookingObject, L as InventoryBookingState, M as InventoryBookingsPage, N as InventoryBookingsQuery, O as LogEntry, P as LogPage, Q as ManageApi, R as ManageApiError, S as PUBLIC_CHANNEL_ID, T as PUBLIC_CHANNEL_NAME, U as ReportByStatus, V as ReportCategoryMeta, W as ReportCategoryRow, X as ReportResult, Y as SeatManager, Z as SeatManagerActionResult, _ as SeatManagerActivity, $ as SeatManagerCapability, a0 as SeatManagerConnection, a1 as SeatManagerMode, a2 as SeatManagerOptions, a3 as SeatManagerTallies, a4 as SelectionSourceRow, a5 as accessIntentDescription, a6 as accessIntentLabel, a7 as accessLine, a8 as accessLinkBadge, a9 as accessLinkErrorCopy, aa as accessLinkIsLive, ab as accessLinkPolicyLines, ac as bucketRows, ad as dropReviewRows, ae as intentForbidsCopy, af as intentSwitchBlockedCopy, ag as isPublicChannelId, ah as markerLetter, ai as markerOf, aj as mutationCount, ak as needsMoveConfirmation, al as planAssignment, am as retryAfterCopy, an as selectionSources, ao as stateBadge, ap as suggestMarker } from './manager-DEjbKiqJ.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Buyer access context — the browser half of the Sales Channels contract
|
|
@@ -369,8 +369,10 @@ interface ControllerSinkOptions {
|
|
|
369
369
|
declare function createControllerSink(controller: PickerControllerLike, options?: ControllerSinkOptions): RealtimeSink;
|
|
370
370
|
|
|
371
371
|
/**
|
|
372
|
-
* Minimal client for the
|
|
373
|
-
* routes).
|
|
372
|
+
* Minimal client for the browser embed surface of workers/api (the `/pub/*`
|
|
373
|
+
* routes). Platform events bind this client to a buyer access context; Managed
|
|
374
|
+
* public/unlisted events may still use it anonymously. Deliberately
|
|
375
|
+
* self-contained — it does NOT reuse src/lib/api.ts,
|
|
374
376
|
* which bakes in a build-time API base and dashboard session credentials. The
|
|
375
377
|
* SDK runs cross-origin on a third-party ticketing page, so:
|
|
376
378
|
* - apiBase is per-instance (constructor option), not a build constant;
|
|
@@ -1069,6 +1071,59 @@ declare class EmbeddedDesigner {
|
|
|
1069
1071
|
private handleMessage;
|
|
1070
1072
|
}
|
|
1071
1073
|
|
|
1074
|
+
/**
|
|
1075
|
+
* Buyer-safe ticket-offer availability shared by the canonical picker and the
|
|
1076
|
+
* hosted event-page templates.
|
|
1077
|
+
*
|
|
1078
|
+
* This module intentionally owns the wire parser. A hosted page, iframe, popup
|
|
1079
|
+
* and SDK mount must refuse or accept the same payload; duplicating this reader
|
|
1080
|
+
* is how one surface eventually prints a price another surface will not charge.
|
|
1081
|
+
*/
|
|
1082
|
+
type SaleState = 'on-sale' | 'low' | 'sold-out' | 'presale' | 'closed';
|
|
1083
|
+
interface TicketOfferSummary {
|
|
1084
|
+
/** Legacy ordering fields kept for older page templates and payloads. */
|
|
1085
|
+
index: number;
|
|
1086
|
+
count: number;
|
|
1087
|
+
/** Units currently available at this offer price; null means unlimited. */
|
|
1088
|
+
remaining: number | null;
|
|
1089
|
+
/** Buyer-facing fields added by the offers UX. Absent on older workers. */
|
|
1090
|
+
id?: string;
|
|
1091
|
+
name?: string;
|
|
1092
|
+
categoryKey?: string | null;
|
|
1093
|
+
startsAt?: number | null;
|
|
1094
|
+
endsAt?: number | null;
|
|
1095
|
+
}
|
|
1096
|
+
interface TicketOfferPrice {
|
|
1097
|
+
categoryKey: string;
|
|
1098
|
+
/** Major units. What a hold on this category is charged right now. */
|
|
1099
|
+
price: number;
|
|
1100
|
+
/** Major units, or null. Printed only when genuinely higher. */
|
|
1101
|
+
previousPrice: number | null;
|
|
1102
|
+
/** Offer provenance for the price row. Absent on older workers. */
|
|
1103
|
+
offerId?: string;
|
|
1104
|
+
offerName?: string;
|
|
1105
|
+
remaining?: number | null;
|
|
1106
|
+
startsAt?: number | null;
|
|
1107
|
+
endsAt?: number | null;
|
|
1108
|
+
}
|
|
1109
|
+
interface TicketOfferAvailability {
|
|
1110
|
+
state: SaleState;
|
|
1111
|
+
/** Currently advertised offer price, in minor units. */
|
|
1112
|
+
fromPrice: number | null;
|
|
1113
|
+
previousPrice: number | null;
|
|
1114
|
+
currency: string | null;
|
|
1115
|
+
/** The highest-priority active buy offer, when one exists. */
|
|
1116
|
+
release: TicketOfferSummary | null;
|
|
1117
|
+
/** The next scheduled price offer. It does not close ordinary ticket sales. */
|
|
1118
|
+
upcoming: TicketOfferSummary | null;
|
|
1119
|
+
/** Server-resolved active offer prices by category, in major units. */
|
|
1120
|
+
prices: TicketOfferPrice[];
|
|
1121
|
+
}
|
|
1122
|
+
/** Parse a public offer payload without repairing a half-understood price. */
|
|
1123
|
+
declare function parseTicketOfferAvailability(body: unknown): TicketOfferAvailability | null;
|
|
1124
|
+
/** Translate the server-resolved category map into SeatPicker pricing. */
|
|
1125
|
+
declare function ticketOfferPrices(availability: TicketOfferAvailability | null): Record<string, number>;
|
|
1126
|
+
|
|
1072
1127
|
/**
|
|
1073
1128
|
* SeatPicker — the full buyer experience as a widget.
|
|
1074
1129
|
*
|
|
@@ -1298,6 +1353,12 @@ interface SeatPickerOptions {
|
|
|
1298
1353
|
* fall back to the chart price.
|
|
1299
1354
|
*/
|
|
1300
1355
|
pricing?: SeatPickerPricing;
|
|
1356
|
+
/**
|
|
1357
|
+
* Fires when the server-resolved active offer changes. Hosted event pages use
|
|
1358
|
+
* this to keep their headline, sticky bar and the canonical picker on the
|
|
1359
|
+
* same live fact. The picker remains fully functional when it is omitted.
|
|
1360
|
+
*/
|
|
1361
|
+
onOfferAvailabilityChange?: (availability: TicketOfferAvailability | null) => void;
|
|
1301
1362
|
/** Hold TTL in ms passed to hold(); server clamps to its own limits. */
|
|
1302
1363
|
holdTtlMs?: number;
|
|
1303
1364
|
/**
|
|
@@ -1312,6 +1373,13 @@ interface SeatPickerOptions {
|
|
|
1312
1373
|
* owns hold persistence and supplies initialHoldId itself.
|
|
1313
1374
|
*/
|
|
1314
1375
|
restoreHold?: boolean;
|
|
1376
|
+
/**
|
|
1377
|
+
* Render the real chart and live seat statuses without allowing selection,
|
|
1378
|
+
* holds or checkout. This is for venue previews and pre-sale Website pages;
|
|
1379
|
+
* it is enforced by the widget even if the event later opens while mounted.
|
|
1380
|
+
* Default false.
|
|
1381
|
+
*/
|
|
1382
|
+
readOnly?: boolean;
|
|
1315
1383
|
/**
|
|
1316
1384
|
* Confirm mode: tapping a seat shows a confirmation card with section, row,
|
|
1317
1385
|
* seat, category, price and Select/Cancel before it enters the tray. Default
|
|
@@ -1463,6 +1531,8 @@ interface SeatPickerOptions {
|
|
|
1463
1531
|
declare class SeatPicker {
|
|
1464
1532
|
private readonly opts;
|
|
1465
1533
|
private readonly api;
|
|
1534
|
+
/** Authenticated view media, cached only for this picker lifetime. */
|
|
1535
|
+
private readonly buyerAssetUrls;
|
|
1466
1536
|
/** Our own public client, or null when the host injected a transport. */
|
|
1467
1537
|
private readonly pubApi;
|
|
1468
1538
|
/** Null for the ordinary public picker — the tokenless path is untouched. */
|
|
@@ -1472,6 +1542,8 @@ declare class SeatPicker {
|
|
|
1472
1542
|
private readonly apiBase;
|
|
1473
1543
|
private readonly controller;
|
|
1474
1544
|
private readonly maxTickets;
|
|
1545
|
+
/** Original host pricing, kept separate from live server offer overrides. */
|
|
1546
|
+
private readonly hostPricing;
|
|
1475
1547
|
private root;
|
|
1476
1548
|
private mapHost;
|
|
1477
1549
|
private rendered;
|
|
@@ -1482,9 +1554,16 @@ declare class SeatPicker {
|
|
|
1482
1554
|
private ro;
|
|
1483
1555
|
private holdTimer;
|
|
1484
1556
|
private toastTimer;
|
|
1557
|
+
private offerRefreshTimer;
|
|
1558
|
+
/** Armed only when the offer schedule has a known future transition (or as a
|
|
1559
|
+
* bounded retry after a failed read) — never a fixed-cadence poll. */
|
|
1560
|
+
private offerBoundaryTimer;
|
|
1561
|
+
private offerVisibilityHandler;
|
|
1485
1562
|
/** Short-lived UI motion timers; all are cancelled on destroy. */
|
|
1486
1563
|
private motionTimers;
|
|
1487
1564
|
private currency;
|
|
1565
|
+
private eventTimezone;
|
|
1566
|
+
private offerAvailability;
|
|
1488
1567
|
private hold;
|
|
1489
1568
|
/** Latest server expiry for the open hold (moves on extend). */
|
|
1490
1569
|
private holdExpiresAt;
|
|
@@ -1547,6 +1626,8 @@ declare class SeatPicker {
|
|
|
1547
1626
|
private secCardEl;
|
|
1548
1627
|
private viewEl;
|
|
1549
1628
|
private viewCleanup;
|
|
1629
|
+
/** Supersedes an older authored-view byte request when another seat is opened. */
|
|
1630
|
+
private seatViewGen;
|
|
1550
1631
|
private allSeatsCache;
|
|
1551
1632
|
private miniCanvas;
|
|
1552
1633
|
private miniBase;
|
|
@@ -1855,6 +1936,28 @@ declare class SeatPicker {
|
|
|
1855
1936
|
private openSeatView;
|
|
1856
1937
|
private closeSeatView;
|
|
1857
1938
|
private money;
|
|
1939
|
+
/**
|
|
1940
|
+
* Sleep until the offer schedule's next known transition, then re-read.
|
|
1941
|
+
*
|
|
1942
|
+
* A far-away boundary is capped: the wake re-reads, learns the (unchanged)
|
|
1943
|
+
* schedule, and re-arms — so a picker left open for days still tracks an
|
|
1944
|
+
* organizer's schedule edits at a cost of one request every few hours. No
|
|
1945
|
+
* future transition means no timer at all; an event with no releases does
|
|
1946
|
+
* zero background traffic. A wake in a hidden tab fetches nothing — the
|
|
1947
|
+
* visibilitychange handler owns catching that tab up.
|
|
1948
|
+
*/
|
|
1949
|
+
private scheduleOfferBoundary;
|
|
1950
|
+
/** Debounce the no-store offer read behind a burst of seat-status frames. */
|
|
1951
|
+
private scheduleOfferRefresh;
|
|
1952
|
+
/**
|
|
1953
|
+
* Pull the server's resolved answer. A failed refresh keeps the last truthful
|
|
1954
|
+
* answer: flashing back to a chart price while checkout still charges an
|
|
1955
|
+
* offer is worse than a temporarily stale remaining count.
|
|
1956
|
+
*/
|
|
1957
|
+
private refreshOfferAvailability;
|
|
1958
|
+
private offerPrice;
|
|
1959
|
+
/** The compact current/upcoming offer card above Ticket prices. */
|
|
1960
|
+
private syncOffer;
|
|
1858
1961
|
/**
|
|
1859
1962
|
* The price the buyer will actually pay for a category (+tier): the host's
|
|
1860
1963
|
* `pricing` override when present, else the chart's stored price. Every
|
|
@@ -2799,4 +2902,4 @@ declare class ChannelsMode {
|
|
|
2799
2902
|
handleBack(): boolean;
|
|
2800
2903
|
}
|
|
2801
2904
|
|
|
2802
|
-
export { AccessLinkReveal, AccessLinkStatusRecord, ApiError, AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, ChannelAccessIntent, ChannelAllocationPage, ChannelListResult, ChannelPreviewProjection, ChannelRecord, ChannelSeatStatus, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsRowView, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, attachPickerFrame, bucketRowsHtml, createBuyerAccessContext, createControllerSink };
|
|
2905
|
+
export { AccessLinkReveal, AccessLinkStatusRecord, ApiError, AssignmentResult, type AttachPickerFrameOptions, type BestAvailableResult, BucketRow, BuyerAccessContext, type BuyerAccessExpiredEvent, type BuyerAccessRefreshReason, type BuyerAccessToken, type BuyerAccessTokenProvider, BuyerAccessUnavailableError, type BuyerAccessUnavailableEvent, type BuyerAccessUnavailableReason, BuyerRealtimeClient, type BuyerRealtimeOptions, ChannelAccessIntent, ChannelAllocationPage, ChannelListResult, ChannelPreviewProjection, ChannelRecord, ChannelSeatStatus, type ChannelsCapabilities, type ChannelsClient, ChannelsMode, type ChannelsModeHost, type ChannelsRowView, type ChannelsSeatView, type CheckoutHandoff, type CheckoutLineItem, type CheckoutSessionResult, EmbeddedDesigner, type EmbeddedDesignerEventType, type EmbeddedDesignerMessage, type EmbeddedDesignerOptions, type GAAreaAvailability, type HoldConflict, type HoldLineItem, type HoldResult, type OrderStatusResult, type PaymentOptionsReason, type PaymentOptionsResult, type PaymentProviderName, type Projection, type PubApiOptions, type RealtimeSink, type ResumedHoldResult, type SaleState, SeatPicker, type SeatPickerOptions, type SeatPickerTheme, SeatingChart, type SeatingChartOptions, type SelectedObjectUnavailableEvent, type SelectedSeat, type StatusChange, type SubscribeTicket, type TicketOfferAvailability, type TicketOfferPrice, type TicketOfferSummary, attachPickerFrame, bucketRowsHtml, createBuyerAccessContext, createControllerSink, parseTicketOfferAvailability, ticketOfferPrices };
|