@vio-live/web-sdk 0.5.1 → 0.6.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/dist/{chunk-LRXVUOEG.js → chunk-6X225SGW.js} +3 -3
- package/dist/{chunk-LRXVUOEG.js.map → chunk-6X225SGW.js.map} +1 -1
- package/dist/{chunk-7Q4MJ5NQ.js → chunk-MOKVTWQW.js} +43 -10
- package/dist/chunk-MOKVTWQW.js.map +1 -0
- package/dist/core/index.d.ts +27 -0
- package/dist/core/index.js +1 -1
- package/dist/index.js +1 -1
- package/dist/react/index.js +3 -3
- package/dist/ui/index.js +3 -3
- package/package.json +1 -1
- package/dist/chunk-7Q4MJ5NQ.js.map +0 -1
|
@@ -3079,14 +3079,38 @@ var CheckoutManager = class _CheckoutManager extends EventTarget {
|
|
|
3079
3079
|
);
|
|
3080
3080
|
}
|
|
3081
3081
|
// MARK: - Apple Pay (Stripe Payment Request)
|
|
3082
|
+
/**
|
|
3083
|
+
* The Stripe publishable key for a sponsor, taken from its own commerce
|
|
3084
|
+
* channel (`GetAvailablePaymentMethods` → Stripe → config.publishableKey).
|
|
3085
|
+
*
|
|
3086
|
+
* The channel is the right source: the key belongs to the brand's Stripe
|
|
3087
|
+
* account, so two brands on one page each get theirs, and a host never has
|
|
3088
|
+
* to configure it. `Vio.init({ stripePublishableKey })` still wins when set,
|
|
3089
|
+
* which keeps existing integrations working and allows an override.
|
|
3090
|
+
*/
|
|
3091
|
+
async resolveStripePublishableKey(sponsorId) {
|
|
3092
|
+
const cfg = Configuration.isInitialized ? Configuration.get() : null;
|
|
3093
|
+
if (cfg?.stripePublishableKey) return cfg.stripePublishableKey;
|
|
3094
|
+
if (this.applePayPublishableKey) return this.applePayPublishableKey;
|
|
3095
|
+
try {
|
|
3096
|
+
const methods = await this.getAvailablePaymentMethods(sponsorId);
|
|
3097
|
+
const stripe = methods?.find((m) => String(m?.name ?? "").toLowerCase() === "stripe");
|
|
3098
|
+
const key = stripe?.config?.find((c) => c?.name === "publishableKey")?.value;
|
|
3099
|
+
if (typeof key === "string" && key.startsWith("pk_")) {
|
|
3100
|
+
this.applePayPublishableKey = key;
|
|
3101
|
+
return key;
|
|
3102
|
+
}
|
|
3103
|
+
} catch {
|
|
3104
|
+
}
|
|
3105
|
+
return "";
|
|
3106
|
+
}
|
|
3082
3107
|
/**
|
|
3083
3108
|
* Returns true if Apple Pay can be shown on this device + Stripe config.
|
|
3084
3109
|
* Result is memoised — call `clearApplePayCache()` if config changes.
|
|
3085
3110
|
*/
|
|
3086
3111
|
async isApplePayAvailable(country = "NO") {
|
|
3087
3112
|
if (this.applePayAvailableCache !== null) return this.applePayAvailableCache;
|
|
3088
|
-
const
|
|
3089
|
-
const publishableKey = cfg?.stripePublishableKey ?? "";
|
|
3113
|
+
const publishableKey = await this.resolveStripePublishableKey(this.state?.sponsorId);
|
|
3090
3114
|
if (!publishableKey || !this.state) {
|
|
3091
3115
|
this.applePayAvailableCache = false;
|
|
3092
3116
|
return false;
|
|
@@ -3115,8 +3139,7 @@ var CheckoutManager = class _CheckoutManager extends EventTarget {
|
|
|
3115
3139
|
* `payment-error`. `available` is true only when Apple Pay will actually work.
|
|
3116
3140
|
*/
|
|
3117
3141
|
async prepareApplePayFor(amount, currency, country = "NO") {
|
|
3118
|
-
const
|
|
3119
|
-
const publishableKey = this.applePayPublishableKey || cfg?.stripePublishableKey || "";
|
|
3142
|
+
const publishableKey = await this.resolveStripePublishableKey(this.state?.sponsorId);
|
|
3120
3143
|
if (!publishableKey) return { available: false, show: async () => {
|
|
3121
3144
|
} };
|
|
3122
3145
|
const prepared = await prepareApplePay({
|
|
@@ -3177,8 +3200,7 @@ var CheckoutManager = class _CheckoutManager extends EventTarget {
|
|
|
3177
3200
|
* called synchronously inside the tap (Apple's user-gesture rule).
|
|
3178
3201
|
*/
|
|
3179
3202
|
async prepareApplePayExpress(amount, currency, country = "NO", sponsorId) {
|
|
3180
|
-
const
|
|
3181
|
-
const publishableKey = this.applePayPublishableKey || cfg?.stripePublishableKey || "";
|
|
3203
|
+
const publishableKey = await this.resolveStripePublishableKey(sponsorId ?? this.state?.sponsorId);
|
|
3182
3204
|
if (!publishableKey) return { available: false, show: async () => null };
|
|
3183
3205
|
const spId = sponsorId ?? this.state?.sponsorId ?? [...this.cartManager.getAllCarts().keys()][0];
|
|
3184
3206
|
const prepared = await prepareApplePay({
|
|
@@ -3301,8 +3323,7 @@ var CheckoutManager = class _CheckoutManager extends EventTarget {
|
|
|
3301
3323
|
async startApplePay(options = {}) {
|
|
3302
3324
|
if (!this.state) throw new Error("[VioCheckout] no active checkout \u2014 call open() first");
|
|
3303
3325
|
const spId = options.sponsorId ?? this.state.sponsorId;
|
|
3304
|
-
const
|
|
3305
|
-
const publishableKey = this.applePayPublishableKey || cfg?.stripePublishableKey || "";
|
|
3326
|
+
const publishableKey = await this.resolveStripePublishableKey(spId);
|
|
3306
3327
|
if (!publishableKey) {
|
|
3307
3328
|
throw new Error(
|
|
3308
3329
|
"[VioCheckout] No Stripe publishable key configured. Pass `stripePublishableKey` to Vio.init({ ... })."
|
|
@@ -3872,6 +3893,8 @@ var AnalyticsManager = class extends EventTarget {
|
|
|
3872
3893
|
this.retryAttempt = 0;
|
|
3873
3894
|
this.retryNotBefore = 0;
|
|
3874
3895
|
this.sessionId = null;
|
|
3896
|
+
/** Set via start({ sessionId }) — the host owns the session, we follow. */
|
|
3897
|
+
this.externalSessionId = null;
|
|
3875
3898
|
this.sessionStartedAt = 0;
|
|
3876
3899
|
/** Impression once-per-(session, component) guard; reset on session rotation. */
|
|
3877
3900
|
this.impressedComponents = /* @__PURE__ */ new Set();
|
|
@@ -3893,6 +3916,7 @@ var AnalyticsManager = class extends EventTarget {
|
|
|
3893
3916
|
debug: options.debug ?? this.options.debug,
|
|
3894
3917
|
autoTrack: options.autoTrack ?? this.options.autoTrack
|
|
3895
3918
|
};
|
|
3919
|
+
if (options.sessionId) this.externalSessionId = options.sessionId;
|
|
3896
3920
|
if (this.started || !hasDom()) return;
|
|
3897
3921
|
this.started = true;
|
|
3898
3922
|
this.ensureSession();
|
|
@@ -4030,6 +4054,8 @@ var AnalyticsManager = class extends EventTarget {
|
|
|
4030
4054
|
sponsor_id: ctx.sponsorId,
|
|
4031
4055
|
activation_id: ctx.activationId,
|
|
4032
4056
|
content_url: ctx.contentUrl ?? (typeof location !== "undefined" ? location.href : void 0),
|
|
4057
|
+
// The host's own content id — its join key back onto its reporting.
|
|
4058
|
+
content_id: ctx.contentId,
|
|
4033
4059
|
// Deletion-proof reporting: sources have no trash bin — the title
|
|
4034
4060
|
// snapshotted at event time keeps reports legible if content dies.
|
|
4035
4061
|
content_title: ctx.contentTitle ?? (typeof document !== "undefined" && document.title ? document.title.slice(0, 255) : void 0),
|
|
@@ -4101,6 +4127,13 @@ var AnalyticsManager = class extends EventTarget {
|
|
|
4101
4127
|
}
|
|
4102
4128
|
}
|
|
4103
4129
|
}
|
|
4130
|
+
if (this.externalSessionId) {
|
|
4131
|
+
if (this.sessionId !== this.externalSessionId) {
|
|
4132
|
+
this.sessionId = this.externalSessionId;
|
|
4133
|
+
this.sessionStartedAt = now;
|
|
4134
|
+
this.impressedComponents.clear();
|
|
4135
|
+
}
|
|
4136
|
+
}
|
|
4104
4137
|
if (!this.sessionId) {
|
|
4105
4138
|
this.sessionId = `s-${uuid()}`;
|
|
4106
4139
|
this.sessionStartedAt = now;
|
|
@@ -4464,5 +4497,5 @@ var _vioGlobal = globalThis;
|
|
|
4464
4497
|
var Vio = _vioGlobal.__VIO_FACADE__ ?? (_vioGlobal.__VIO_FACADE__ = new VioFacade());
|
|
4465
4498
|
|
|
4466
4499
|
export { ADD_ITEM_MUTATION, AnalyticsManager, CREATE_CART_MUTATION, CREATE_CHECKOUT_MUTATION, CREATE_PAYMENT_STRIPE_MUTATION, CREATE_PAYMENT_VIPPS_MUTATION, CartManager, CheckoutManager, CommerceClient, Configuration, DELETE_ITEM_MUTATION, GET_AVAILABLE_PAYMENT_METHODS_QUERY, GET_CART_QUERY, GET_CHECKOUT_QUERY, GET_LINE_ITEMS_BY_SUPPLIER_QUERY, GET_VIPPS_STATUS_QUERY, SDK_VERSION, UPDATE_CHECKOUT_MUTATION, UPDATE_ITEM_MUTATION, UPDATE_SHIPPINGS_BY_SUPPLIER_MUTATION, Vio, VioApi, VioApiError, __decorateClass, addItem, checkApplePayAvailability, createCart, createCheckout, createCommerceClient, createPaymentStripe, createPaymentVipps, createVioApi, deleteItem, displayPrice, executeCartGraphQL, formatPrice, getAvailablePaymentMethods, getCart, getCartGraphQLOptions, getCheckout, getCustomerSessionId, getGlobalCurrency, getLineItemsBySupplier, getVippsStatus, primaryImageUrl, showApplePaySheet, updateCheckout, updateItem, updateShippingsBySupplier };
|
|
4467
|
-
//# sourceMappingURL=chunk-
|
|
4468
|
-
//# sourceMappingURL=chunk-
|
|
4500
|
+
//# sourceMappingURL=chunk-MOKVTWQW.js.map
|
|
4501
|
+
//# sourceMappingURL=chunk-MOKVTWQW.js.map
|