@cimplify/sdk 0.59.0 → 0.60.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-TGAROSXB.mjs → chunk-2AU263DK.mjs} +13 -8
- package/dist/{chunk-3QPO2UK5.js → chunk-6DMHVQ42.js} +15 -10
- package/dist/chunk-DKT62WQW.js +53 -0
- package/dist/chunk-XSOYJLMZ.mjs +45 -0
- package/dist/index.d.mts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +19 -20
- package/dist/index.mjs +6 -7
- package/dist/react.d.mts +2 -2
- package/dist/react.d.ts +2 -2
- package/dist/react.js +48 -48
- package/dist/react.mjs +3 -3
- package/dist/server.d.mts +4 -0
- package/dist/server.d.ts +4 -0
- package/dist/server.js +7 -8
- package/dist/server.mjs +4 -5
- package/dist/{sign-in-CZ2ioBAP.d.mts → sign-in-dr7m09nm.d.mts} +4 -0
- package/dist/{sign-in-CZ2ioBAP.d.ts → sign-in-dr7m09nm.d.ts} +4 -0
- package/package.json +1 -1
- package/dist/chunk-LA2T2TPA.js +0 -25
- package/dist/chunk-ZKTXRWP6.mjs +0 -19
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { encodePkceState, PKCE_COOKIE, PKCE_COOKIE_PATH, PKCE_COOKIE_MAX_AGE_SECONDS } from './chunk-
|
|
1
|
+
import { encodePkceState, PKCE_COOKIE, PKCE_COOKIE_PATH, PKCE_COOKIE_MAX_AGE_SECONDS, getAuthorizationEndpoint, DEFAULT_ISSUER } from './chunk-XSOYJLMZ.mjs';
|
|
2
2
|
|
|
3
3
|
// src/gallery.ts
|
|
4
4
|
function dedupe(urls) {
|
|
@@ -190,15 +190,20 @@ function openModalIframe(opts) {
|
|
|
190
190
|
}
|
|
191
191
|
|
|
192
192
|
// src/sign-in.ts
|
|
193
|
-
var DEFAULT_AUTH_URL = "https://auth.cimplify.io";
|
|
194
193
|
var DEFAULT_SCOPE = "openid email phone profile";
|
|
194
|
+
function resolveAuthorizeEndpoint(opts) {
|
|
195
|
+
if (opts.authUrl) {
|
|
196
|
+
return Promise.resolve(`${opts.authUrl.replace(/\/$/, "")}/oauth/authorize`);
|
|
197
|
+
}
|
|
198
|
+
return getAuthorizationEndpoint(opts.issuer ?? DEFAULT_ISSUER);
|
|
199
|
+
}
|
|
195
200
|
async function startSignIn(opts) {
|
|
196
|
-
const authUrl = (opts.authUrl ?? DEFAULT_AUTH_URL).replace(/\/$/, "");
|
|
197
201
|
const callbackUri = opts.callbackUri ?? "/auth/callback";
|
|
198
202
|
const pkce = await generatePkce();
|
|
199
203
|
const state = generateState();
|
|
204
|
+
const authorizeEndpoint = await resolveAuthorizeEndpoint(opts);
|
|
200
205
|
if ((opts.mode ?? "redirect") === "redirect") {
|
|
201
|
-
startRedirectSignIn(opts,
|
|
206
|
+
startRedirectSignIn(opts, authorizeEndpoint, pkce, state);
|
|
202
207
|
return;
|
|
203
208
|
}
|
|
204
209
|
const params = new URLSearchParams({
|
|
@@ -213,8 +218,8 @@ async function startSignIn(opts) {
|
|
|
213
218
|
});
|
|
214
219
|
if (opts.loginHint) params.set("login_hint", opts.loginHint);
|
|
215
220
|
if (opts.prompt) params.set("prompt", opts.prompt);
|
|
216
|
-
const src = `${
|
|
217
|
-
const expectedOrigin = new URL(
|
|
221
|
+
const src = `${authorizeEndpoint}?${params.toString()}`;
|
|
222
|
+
const expectedOrigin = new URL(authorizeEndpoint).origin;
|
|
218
223
|
const modal = openModalIframe({
|
|
219
224
|
src,
|
|
220
225
|
onClose: () => {
|
|
@@ -259,7 +264,7 @@ async function startSignIn(opts) {
|
|
|
259
264
|
};
|
|
260
265
|
window.addEventListener("message", handler);
|
|
261
266
|
}
|
|
262
|
-
function startRedirectSignIn(opts,
|
|
267
|
+
function startRedirectSignIn(opts, authorizeEndpoint, pkce, state) {
|
|
263
268
|
const returnTo = opts.returnTo ?? window.location.pathname + window.location.search;
|
|
264
269
|
const cookieValue = encodePkceState({ verifier: pkce.verifier, state, returnTo });
|
|
265
270
|
const secure = window.location.protocol === "https:" ? "; Secure" : "";
|
|
@@ -276,7 +281,7 @@ function startRedirectSignIn(opts, authUrl, pkce, state) {
|
|
|
276
281
|
});
|
|
277
282
|
if (opts.loginHint) params.set("login_hint", opts.loginHint);
|
|
278
283
|
if (opts.prompt) params.set("prompt", opts.prompt);
|
|
279
|
-
window.location.assign(`${
|
|
284
|
+
window.location.assign(`${authorizeEndpoint}?${params.toString()}`);
|
|
280
285
|
}
|
|
281
286
|
|
|
282
287
|
// src/assets/url.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkDKT62WQW_js = require('./chunk-DKT62WQW.js');
|
|
4
4
|
|
|
5
5
|
// src/gallery.ts
|
|
6
6
|
function dedupe(urls) {
|
|
@@ -192,15 +192,20 @@ function openModalIframe(opts) {
|
|
|
192
192
|
}
|
|
193
193
|
|
|
194
194
|
// src/sign-in.ts
|
|
195
|
-
var DEFAULT_AUTH_URL = "https://auth.cimplify.io";
|
|
196
195
|
var DEFAULT_SCOPE = "openid email phone profile";
|
|
196
|
+
function resolveAuthorizeEndpoint(opts) {
|
|
197
|
+
if (opts.authUrl) {
|
|
198
|
+
return Promise.resolve(`${opts.authUrl.replace(/\/$/, "")}/oauth/authorize`);
|
|
199
|
+
}
|
|
200
|
+
return chunkDKT62WQW_js.getAuthorizationEndpoint(opts.issuer ?? chunkDKT62WQW_js.DEFAULT_ISSUER);
|
|
201
|
+
}
|
|
197
202
|
async function startSignIn(opts) {
|
|
198
|
-
const authUrl = (opts.authUrl ?? DEFAULT_AUTH_URL).replace(/\/$/, "");
|
|
199
203
|
const callbackUri = opts.callbackUri ?? "/auth/callback";
|
|
200
204
|
const pkce = await generatePkce();
|
|
201
205
|
const state = generateState();
|
|
206
|
+
const authorizeEndpoint = await resolveAuthorizeEndpoint(opts);
|
|
202
207
|
if ((opts.mode ?? "redirect") === "redirect") {
|
|
203
|
-
startRedirectSignIn(opts,
|
|
208
|
+
startRedirectSignIn(opts, authorizeEndpoint, pkce, state);
|
|
204
209
|
return;
|
|
205
210
|
}
|
|
206
211
|
const params = new URLSearchParams({
|
|
@@ -215,8 +220,8 @@ async function startSignIn(opts) {
|
|
|
215
220
|
});
|
|
216
221
|
if (opts.loginHint) params.set("login_hint", opts.loginHint);
|
|
217
222
|
if (opts.prompt) params.set("prompt", opts.prompt);
|
|
218
|
-
const src = `${
|
|
219
|
-
const expectedOrigin = new URL(
|
|
223
|
+
const src = `${authorizeEndpoint}?${params.toString()}`;
|
|
224
|
+
const expectedOrigin = new URL(authorizeEndpoint).origin;
|
|
220
225
|
const modal = openModalIframe({
|
|
221
226
|
src,
|
|
222
227
|
onClose: () => {
|
|
@@ -261,11 +266,11 @@ async function startSignIn(opts) {
|
|
|
261
266
|
};
|
|
262
267
|
window.addEventListener("message", handler);
|
|
263
268
|
}
|
|
264
|
-
function startRedirectSignIn(opts,
|
|
269
|
+
function startRedirectSignIn(opts, authorizeEndpoint, pkce, state) {
|
|
265
270
|
const returnTo = opts.returnTo ?? window.location.pathname + window.location.search;
|
|
266
|
-
const cookieValue =
|
|
271
|
+
const cookieValue = chunkDKT62WQW_js.encodePkceState({ verifier: pkce.verifier, state, returnTo });
|
|
267
272
|
const secure = window.location.protocol === "https:" ? "; Secure" : "";
|
|
268
|
-
document.cookie = `${
|
|
273
|
+
document.cookie = `${chunkDKT62WQW_js.PKCE_COOKIE}=${cookieValue}; Path=${chunkDKT62WQW_js.PKCE_COOKIE_PATH}; Max-Age=${chunkDKT62WQW_js.PKCE_COOKIE_MAX_AGE_SECONDS}; SameSite=Lax${secure}`;
|
|
269
274
|
const params = new URLSearchParams({
|
|
270
275
|
response_type: "code",
|
|
271
276
|
response_mode: "query",
|
|
@@ -278,7 +283,7 @@ function startRedirectSignIn(opts, authUrl, pkce, state) {
|
|
|
278
283
|
});
|
|
279
284
|
if (opts.loginHint) params.set("login_hint", opts.loginHint);
|
|
280
285
|
if (opts.prompt) params.set("prompt", opts.prompt);
|
|
281
|
-
window.location.assign(`${
|
|
286
|
+
window.location.assign(`${authorizeEndpoint}?${params.toString()}`);
|
|
282
287
|
}
|
|
283
288
|
|
|
284
289
|
// src/assets/url.ts
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/internal/pkce-cookie.ts
|
|
4
|
+
var PKCE_COOKIE = "cimplify_pkce";
|
|
5
|
+
var PKCE_COOKIE_PATH = "/auth";
|
|
6
|
+
var PKCE_COOKIE_MAX_AGE_SECONDS = 600;
|
|
7
|
+
function encodePkceState(state) {
|
|
8
|
+
return encodeURIComponent(JSON.stringify(state));
|
|
9
|
+
}
|
|
10
|
+
function decodePkceState(raw) {
|
|
11
|
+
try {
|
|
12
|
+
const parsed = JSON.parse(decodeURIComponent(raw));
|
|
13
|
+
if (typeof parsed?.verifier === "string" && typeof parsed.state === "string" && typeof parsed.returnTo === "string") {
|
|
14
|
+
return { verifier: parsed.verifier, state: parsed.state, returnTo: parsed.returnTo };
|
|
15
|
+
}
|
|
16
|
+
} catch {
|
|
17
|
+
}
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/internal/discovery.ts
|
|
22
|
+
var DEFAULT_ISSUER = "https://api.cimplify.io";
|
|
23
|
+
var FALLBACK_AUTHORIZATION_ENDPOINT = "https://auth.cimplify.io/oauth/authorize";
|
|
24
|
+
var cache = /* @__PURE__ */ new Map();
|
|
25
|
+
function fetchDiscovery(issuer) {
|
|
26
|
+
const base = issuer.replace(/\/$/, "");
|
|
27
|
+
let pending = cache.get(base);
|
|
28
|
+
if (!pending) {
|
|
29
|
+
pending = fetch(`${base}/.well-known/openid-configuration`).then((res) => {
|
|
30
|
+
if (!res.ok) throw new Error(`oidc discovery failed: ${res.status}`);
|
|
31
|
+
return res.json();
|
|
32
|
+
});
|
|
33
|
+
pending.catch(() => cache.delete(base));
|
|
34
|
+
cache.set(base, pending);
|
|
35
|
+
}
|
|
36
|
+
return pending;
|
|
37
|
+
}
|
|
38
|
+
async function getAuthorizationEndpoint(issuer) {
|
|
39
|
+
try {
|
|
40
|
+
const doc = await fetchDiscovery(issuer);
|
|
41
|
+
if (doc.authorization_endpoint) return doc.authorization_endpoint;
|
|
42
|
+
} catch {
|
|
43
|
+
}
|
|
44
|
+
return FALLBACK_AUTHORIZATION_ENDPOINT;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
exports.DEFAULT_ISSUER = DEFAULT_ISSUER;
|
|
48
|
+
exports.PKCE_COOKIE = PKCE_COOKIE;
|
|
49
|
+
exports.PKCE_COOKIE_MAX_AGE_SECONDS = PKCE_COOKIE_MAX_AGE_SECONDS;
|
|
50
|
+
exports.PKCE_COOKIE_PATH = PKCE_COOKIE_PATH;
|
|
51
|
+
exports.decodePkceState = decodePkceState;
|
|
52
|
+
exports.encodePkceState = encodePkceState;
|
|
53
|
+
exports.getAuthorizationEndpoint = getAuthorizationEndpoint;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// src/internal/pkce-cookie.ts
|
|
2
|
+
var PKCE_COOKIE = "cimplify_pkce";
|
|
3
|
+
var PKCE_COOKIE_PATH = "/auth";
|
|
4
|
+
var PKCE_COOKIE_MAX_AGE_SECONDS = 600;
|
|
5
|
+
function encodePkceState(state) {
|
|
6
|
+
return encodeURIComponent(JSON.stringify(state));
|
|
7
|
+
}
|
|
8
|
+
function decodePkceState(raw) {
|
|
9
|
+
try {
|
|
10
|
+
const parsed = JSON.parse(decodeURIComponent(raw));
|
|
11
|
+
if (typeof parsed?.verifier === "string" && typeof parsed.state === "string" && typeof parsed.returnTo === "string") {
|
|
12
|
+
return { verifier: parsed.verifier, state: parsed.state, returnTo: parsed.returnTo };
|
|
13
|
+
}
|
|
14
|
+
} catch {
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// src/internal/discovery.ts
|
|
20
|
+
var DEFAULT_ISSUER = "https://api.cimplify.io";
|
|
21
|
+
var FALLBACK_AUTHORIZATION_ENDPOINT = "https://auth.cimplify.io/oauth/authorize";
|
|
22
|
+
var cache = /* @__PURE__ */ new Map();
|
|
23
|
+
function fetchDiscovery(issuer) {
|
|
24
|
+
const base = issuer.replace(/\/$/, "");
|
|
25
|
+
let pending = cache.get(base);
|
|
26
|
+
if (!pending) {
|
|
27
|
+
pending = fetch(`${base}/.well-known/openid-configuration`).then((res) => {
|
|
28
|
+
if (!res.ok) throw new Error(`oidc discovery failed: ${res.status}`);
|
|
29
|
+
return res.json();
|
|
30
|
+
});
|
|
31
|
+
pending.catch(() => cache.delete(base));
|
|
32
|
+
cache.set(base, pending);
|
|
33
|
+
}
|
|
34
|
+
return pending;
|
|
35
|
+
}
|
|
36
|
+
async function getAuthorizationEndpoint(issuer) {
|
|
37
|
+
try {
|
|
38
|
+
const doc = await fetchDiscovery(issuer);
|
|
39
|
+
if (doc.authorization_endpoint) return doc.authorization_endpoint;
|
|
40
|
+
} catch {
|
|
41
|
+
}
|
|
42
|
+
return FALLBACK_AUTHORIZATION_ENDPOINT;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { DEFAULT_ISSUER, PKCE_COOKIE, PKCE_COOKIE_MAX_AGE_SECONDS, PKCE_COOKIE_PATH, decodePkceState, encodePkceState, getAuthorizationEndpoint };
|
package/dist/index.d.mts
CHANGED
|
@@ -2,7 +2,7 @@ export { A as AUTHORIZATION_TYPE, a as AUTH_MUTATION, b as AbortablePromise, c a
|
|
|
2
2
|
import { b9 as ProductWithDetails, j as ApiError } from './product-B_kS4Oxa.mjs';
|
|
3
3
|
export { A as AddOn, a as AddOnDetails, b as AddOnGroupDetails, c as AddOnOption, d as AddOnOptionDetails, e as AddOnOptionPrice, f as AddOnWithOptions, g as AddToCartInput, h as AddressValue, i as AdjustmentType, k as AppliedDiscount, l as AttributeAppliesTo, m as AttributeType, n as AttributeValidationRules, o as AttributeVisibility, B as BenefitType, p as BillingFrequency, q as BillingMarkupType, r as BillingPlanType, s as Bundle, t as BundleComponentData, u as BundleComponentInfo, v as BundleComponentVariantView, w as BundleComponentView, x as BundlePriceType, y as BundleProduct, z as BundleSelectionData, C as BundleSelectionInput, D as BundleStoredSelection, E as BundleSummary, F as BundleWithDetails, G as Cart, H as CartAddOn, I as CartChannel, J as CartItem, K as CartItemDetails, L as CartMutationResult, M as CartNotice, N as CartStatus, O as CartSummary, P as CartTotals, Q as Category, R as CategorySummary, S as ChosenPrice, T as CimplifyError, U as Collection, V as CollectionProduct, W as CollectionSummary, X as ComponentGroup, Y as ComponentGroupWithComponents, Z as ComponentPriceBreakdown, _ as ComponentSchedulingData, $ as ComponentSelectionInput, a0 as ComponentSourceType, a1 as Composite, a2 as CompositeComponent, a3 as CompositeComponentView, a4 as CompositeGroupView, a5 as CompositePriceBreakdown, a6 as CompositePriceResult, a7 as CompositePricingMode, a8 as CompositeSelectionData, $ as CompositeSelectionInput, a9 as CompositeStoredSelection, aa as CompositeWithDetails, ab as CurrencyCode, ac as CustomAttributeDefinition, ad as CustomAttributeValue, ae as CustomerInputValue, af as DURATION_UNIT, ag as DateRangeValue, ah as Deal, ai as DealBenefitType, aj as DepositType, ak as DigitalProductType, al as DiscountBreakdown, am as DiscountDetails, an as DiscountValidation, ao as DisplayAddOn, ap as DisplayAddOnOption, aq as DisplayCart, ar as DisplayCartItem, as as DisplayMode, at as DurationUnit, au as ERROR_HINTS, av as EligiblePlansQuery, aw as ErrorCode, ax as ErrorCodeType, ay as ErrorHint, az as FacetValue, aA as FormattedPlanOption, aB as GroupPricingBehavior, aC as INPUT_FIELD_TYPE, aD as IdempotencyMismatchError, aE as InputFieldType, aF as InputFieldValidation, aG as InventoryType, aH as KnowledgeArticle, aI as LineConfiguration, aJ as LocationProductPrice, aK as LocationValue, aL as MeasurementValue, aM as Money, aN as PRODUCT_TYPE, aO as Pagination, aP as PaginationParams, aQ as PhoneValue, aR as Price, aS as PriceAdjustment, aT as PriceDecisionPath, aU as PriceEntryType, aV as PricePathTaxInfo, aW as PriceSource, aX as Product, aY as ProductAddOn, aZ as ProductAvailability, a_ as ProductAvailabilityNow, a$ as ProductBillingPlan, b0 as ProductDealInfo, b1 as ProductInputField, b2 as ProductProperty, b3 as ProductRenderHint, b4 as ProductTaxonomy, b5 as ProductTimeProfile, b6 as ProductType, b7 as ProductVariant, b8 as ProductVariantValue, ba as PropertyFacet, bb as PropertySource, bc as QuantityPricingTier, bd as RENDER_HINT, be as RelatedProductView, bf as SalesChannel, bg as SchedulingMode, bh as SelectedAddOnOption, bi as SemanticKind, bj as SignatureValue, bk as Subscription, bl as SubscriptionInvoice, bm as SubscriptionItem, bn as SubscriptionStatus, bo as SubscriptionWithDetails, bp as Tag, bq as TagsResponse, br as TaxPathComponent, bs as TaxonomyAttributeTemplate, bt as TaxonomyWithChildren, bu as UICart, bv as UICartBusiness, bw as UICartCustomer, bx as UICartLocation, by as UICartPricing, bz as UpdateCartItemInput, bA as VariantAxis, bB as VariantAxisSelection, bC as VariantAxisValue, bD as VariantAxisValueView, bE as VariantAxisView, bF as VariantAxisWithValues, bG as VariantDetails, bH as VariantDetailsDTO, bI as VariantDisplayAttribute, bJ as VariantLocationAvailability, bK as VariantStrategy, bL as VariantView, bM as ZERO, bN as currencyCode, bO as enrichError, bP as getErrorHint, bQ as isCimplifyError, bR as isIdempotencyMismatchError, bS as isQuoteConflictRequiringConsent, bT as isQuoteError, bU as isRetryableError, bV as isSupportedCurrency, bW as money, bX as moneyFromNumber } from './product-B_kS4Oxa.mjs';
|
|
4
4
|
export { C as CURRENCY_SYMBOLS, M as MOBILE_MONEY_PROVIDERS, c as categorizePaymentError, d as detectMobileMoneyProvider, f as formatMoney, a as formatNumberCompact, b as formatPrice, e as formatPriceAdjustment, g as formatPriceCompact, h as formatPriceRange, i as formatPriceWithTax, j as formatProductPrice, k as getBasePrice, l as getCurrencySymbol, m as getDiscountPercentage, n as getDisplayPrice, o as getMarkupPercentage, p as getPriceRange, q as getProductCurrency, r as getTaxAmount, s as getUnitPriceAtQuantity, t as hasTaxInfo, u as isOnSale, v as isPaymentStatusFailure, w as isPaymentStatusRequiresAction, x as isPaymentStatusSuccess, y as isTaxInclusive, z as isValidPhoneForContext, A as normalizePaymentResponse, B as normalizePhoneToE164, D as normalizeStatusResponse, E as parsePrice, F as resolvePhoneCountryCode } from './index-D8vnKlOQ.mjs';
|
|
5
|
-
export { A as AdConfig, a as AdContextValue, b as AdCreative, c as AdPosition, d as AdSlot, e as AdTheme, S as SignInOptions, g as getVariantDisplayName, s as startSignIn } from './sign-in-
|
|
5
|
+
export { A as AdConfig, a as AdContextValue, b as AdCreative, c as AdPosition, d as AdSlot, e as AdTheme, S as SignInOptions, g as getVariantDisplayName, s as startSignIn } from './sign-in-dr7m09nm.mjs';
|
|
6
6
|
export { A as AddressAuthorizationData, a as AuthorizationType, I as InitializePaymentResult, P as Payment, b as PaymentErrorDetails, c as PaymentMethod, d as PaymentMethodType, e as PaymentProcessingState, f as PaymentProvider, g as PaymentResponse, h as PaymentStatus, i as PaymentStatusResponse, S as SubmitAuthorizationInput } from './payment-DVS7ZUEp.mjs';
|
|
7
7
|
export { F as FormatCompactOptions, a as FormatPriceOptions, P as ProductWithPrice } from './price-Cm0tU0V5.mjs';
|
|
8
8
|
export { generateIdempotencyKey } from './advanced.mjs';
|
|
@@ -95,6 +95,9 @@ interface SilentSignInOptions {
|
|
|
95
95
|
callbackUri?: string;
|
|
96
96
|
sessionUri?: string;
|
|
97
97
|
scope?: string;
|
|
98
|
+
/** OIDC issuer; the authorize host is resolved from discovery. Defaults to https://api.cimplify.io. */
|
|
99
|
+
issuer?: string;
|
|
100
|
+
/** @deprecated Pass `issuer`. If set, used directly as the authorize host. */
|
|
98
101
|
authUrl?: string;
|
|
99
102
|
timeoutMs?: number;
|
|
100
103
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { A as AUTHORIZATION_TYPE, a as AUTH_MUTATION, b as AbortablePromise, c a
|
|
|
2
2
|
import { b9 as ProductWithDetails, j as ApiError } from './product-B_kS4Oxa.js';
|
|
3
3
|
export { A as AddOn, a as AddOnDetails, b as AddOnGroupDetails, c as AddOnOption, d as AddOnOptionDetails, e as AddOnOptionPrice, f as AddOnWithOptions, g as AddToCartInput, h as AddressValue, i as AdjustmentType, k as AppliedDiscount, l as AttributeAppliesTo, m as AttributeType, n as AttributeValidationRules, o as AttributeVisibility, B as BenefitType, p as BillingFrequency, q as BillingMarkupType, r as BillingPlanType, s as Bundle, t as BundleComponentData, u as BundleComponentInfo, v as BundleComponentVariantView, w as BundleComponentView, x as BundlePriceType, y as BundleProduct, z as BundleSelectionData, C as BundleSelectionInput, D as BundleStoredSelection, E as BundleSummary, F as BundleWithDetails, G as Cart, H as CartAddOn, I as CartChannel, J as CartItem, K as CartItemDetails, L as CartMutationResult, M as CartNotice, N as CartStatus, O as CartSummary, P as CartTotals, Q as Category, R as CategorySummary, S as ChosenPrice, T as CimplifyError, U as Collection, V as CollectionProduct, W as CollectionSummary, X as ComponentGroup, Y as ComponentGroupWithComponents, Z as ComponentPriceBreakdown, _ as ComponentSchedulingData, $ as ComponentSelectionInput, a0 as ComponentSourceType, a1 as Composite, a2 as CompositeComponent, a3 as CompositeComponentView, a4 as CompositeGroupView, a5 as CompositePriceBreakdown, a6 as CompositePriceResult, a7 as CompositePricingMode, a8 as CompositeSelectionData, $ as CompositeSelectionInput, a9 as CompositeStoredSelection, aa as CompositeWithDetails, ab as CurrencyCode, ac as CustomAttributeDefinition, ad as CustomAttributeValue, ae as CustomerInputValue, af as DURATION_UNIT, ag as DateRangeValue, ah as Deal, ai as DealBenefitType, aj as DepositType, ak as DigitalProductType, al as DiscountBreakdown, am as DiscountDetails, an as DiscountValidation, ao as DisplayAddOn, ap as DisplayAddOnOption, aq as DisplayCart, ar as DisplayCartItem, as as DisplayMode, at as DurationUnit, au as ERROR_HINTS, av as EligiblePlansQuery, aw as ErrorCode, ax as ErrorCodeType, ay as ErrorHint, az as FacetValue, aA as FormattedPlanOption, aB as GroupPricingBehavior, aC as INPUT_FIELD_TYPE, aD as IdempotencyMismatchError, aE as InputFieldType, aF as InputFieldValidation, aG as InventoryType, aH as KnowledgeArticle, aI as LineConfiguration, aJ as LocationProductPrice, aK as LocationValue, aL as MeasurementValue, aM as Money, aN as PRODUCT_TYPE, aO as Pagination, aP as PaginationParams, aQ as PhoneValue, aR as Price, aS as PriceAdjustment, aT as PriceDecisionPath, aU as PriceEntryType, aV as PricePathTaxInfo, aW as PriceSource, aX as Product, aY as ProductAddOn, aZ as ProductAvailability, a_ as ProductAvailabilityNow, a$ as ProductBillingPlan, b0 as ProductDealInfo, b1 as ProductInputField, b2 as ProductProperty, b3 as ProductRenderHint, b4 as ProductTaxonomy, b5 as ProductTimeProfile, b6 as ProductType, b7 as ProductVariant, b8 as ProductVariantValue, ba as PropertyFacet, bb as PropertySource, bc as QuantityPricingTier, bd as RENDER_HINT, be as RelatedProductView, bf as SalesChannel, bg as SchedulingMode, bh as SelectedAddOnOption, bi as SemanticKind, bj as SignatureValue, bk as Subscription, bl as SubscriptionInvoice, bm as SubscriptionItem, bn as SubscriptionStatus, bo as SubscriptionWithDetails, bp as Tag, bq as TagsResponse, br as TaxPathComponent, bs as TaxonomyAttributeTemplate, bt as TaxonomyWithChildren, bu as UICart, bv as UICartBusiness, bw as UICartCustomer, bx as UICartLocation, by as UICartPricing, bz as UpdateCartItemInput, bA as VariantAxis, bB as VariantAxisSelection, bC as VariantAxisValue, bD as VariantAxisValueView, bE as VariantAxisView, bF as VariantAxisWithValues, bG as VariantDetails, bH as VariantDetailsDTO, bI as VariantDisplayAttribute, bJ as VariantLocationAvailability, bK as VariantStrategy, bL as VariantView, bM as ZERO, bN as currencyCode, bO as enrichError, bP as getErrorHint, bQ as isCimplifyError, bR as isIdempotencyMismatchError, bS as isQuoteConflictRequiringConsent, bT as isQuoteError, bU as isRetryableError, bV as isSupportedCurrency, bW as money, bX as moneyFromNumber } from './product-B_kS4Oxa.js';
|
|
4
4
|
export { C as CURRENCY_SYMBOLS, M as MOBILE_MONEY_PROVIDERS, c as categorizePaymentError, d as detectMobileMoneyProvider, f as formatMoney, a as formatNumberCompact, b as formatPrice, e as formatPriceAdjustment, g as formatPriceCompact, h as formatPriceRange, i as formatPriceWithTax, j as formatProductPrice, k as getBasePrice, l as getCurrencySymbol, m as getDiscountPercentage, n as getDisplayPrice, o as getMarkupPercentage, p as getPriceRange, q as getProductCurrency, r as getTaxAmount, s as getUnitPriceAtQuantity, t as hasTaxInfo, u as isOnSale, v as isPaymentStatusFailure, w as isPaymentStatusRequiresAction, x as isPaymentStatusSuccess, y as isTaxInclusive, z as isValidPhoneForContext, A as normalizePaymentResponse, B as normalizePhoneToE164, D as normalizeStatusResponse, E as parsePrice, F as resolvePhoneCountryCode } from './index-DIIlPUOC.js';
|
|
5
|
-
export { A as AdConfig, a as AdContextValue, b as AdCreative, c as AdPosition, d as AdSlot, e as AdTheme, S as SignInOptions, g as getVariantDisplayName, s as startSignIn } from './sign-in-
|
|
5
|
+
export { A as AdConfig, a as AdContextValue, b as AdCreative, c as AdPosition, d as AdSlot, e as AdTheme, S as SignInOptions, g as getVariantDisplayName, s as startSignIn } from './sign-in-dr7m09nm.js';
|
|
6
6
|
export { A as AddressAuthorizationData, a as AuthorizationType, I as InitializePaymentResult, P as Payment, b as PaymentErrorDetails, c as PaymentMethod, d as PaymentMethodType, e as PaymentProcessingState, f as PaymentProvider, g as PaymentResponse, h as PaymentStatus, i as PaymentStatusResponse, S as SubmitAuthorizationInput } from './payment-sn-yGL7v.js';
|
|
7
7
|
export { F as FormatCompactOptions, a as FormatPriceOptions, P as ProductWithPrice } from './price-9T1Y47oS.js';
|
|
8
8
|
export { generateIdempotencyKey } from './advanced.js';
|
|
@@ -95,6 +95,9 @@ interface SilentSignInOptions {
|
|
|
95
95
|
callbackUri?: string;
|
|
96
96
|
sessionUri?: string;
|
|
97
97
|
scope?: string;
|
|
98
|
+
/** OIDC issuer; the authorize host is resolved from discovery. Defaults to https://api.cimplify.io. */
|
|
99
|
+
issuer?: string;
|
|
100
|
+
/** @deprecated Pass `issuer`. If set, used directly as the authorize host. */
|
|
98
101
|
authUrl?: string;
|
|
99
102
|
timeoutMs?: number;
|
|
100
103
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk6DMHVQ42_js = require('./chunk-6DMHVQ42.js');
|
|
4
4
|
var chunkL5GKVQVJ_js = require('./chunk-L5GKVQVJ.js');
|
|
5
|
-
require('./chunk-
|
|
5
|
+
var chunkDKT62WQW_js = require('./chunk-DKT62WQW.js');
|
|
6
6
|
var chunkMW7ICTVK_js = require('./chunk-MW7ICTVK.js');
|
|
7
7
|
var chunkJGBDWEPJ_js = require('./chunk-JGBDWEPJ.js');
|
|
8
8
|
var chunk7Y2O3E4D_js = require('./chunk-7Y2O3E4D.js');
|
|
@@ -10,7 +10,6 @@ var chunkXA3ZNR75_js = require('./chunk-XA3ZNR75.js');
|
|
|
10
10
|
require('./chunk-OWW5GUSB.js');
|
|
11
11
|
|
|
12
12
|
// src/silent-sign-in.ts
|
|
13
|
-
var DEFAULT_AUTH_URL = "https://auth.cimplify.io";
|
|
14
13
|
var DEFAULT_SCOPE = "openid email phone profile";
|
|
15
14
|
var DEFAULT_TIMEOUT_MS = 12e3;
|
|
16
15
|
async function signInSilent(opts) {
|
|
@@ -23,10 +22,10 @@ async function signInSilent(opts) {
|
|
|
23
22
|
}
|
|
24
23
|
} catch {
|
|
25
24
|
}
|
|
26
|
-
const authUrl = (opts.authUrl ?? DEFAULT_AUTH_URL).replace(/\/$/, "");
|
|
27
25
|
const callbackUri = opts.callbackUri ?? "/auth/callback";
|
|
28
|
-
const
|
|
29
|
-
const
|
|
26
|
+
const authorizeEndpoint = opts.authUrl ? `${opts.authUrl.replace(/\/$/, "")}/oauth/authorize` : await chunkDKT62WQW_js.getAuthorizationEndpoint(opts.issuer ?? chunkDKT62WQW_js.DEFAULT_ISSUER);
|
|
27
|
+
const pkce = await chunk6DMHVQ42_js.generatePkce();
|
|
28
|
+
const state = chunk6DMHVQ42_js.generateState();
|
|
30
29
|
const params = new URLSearchParams({
|
|
31
30
|
response_type: "code",
|
|
32
31
|
response_mode: "web_message",
|
|
@@ -38,8 +37,8 @@ async function signInSilent(opts) {
|
|
|
38
37
|
code_challenge: pkce.challenge,
|
|
39
38
|
code_challenge_method: pkce.method
|
|
40
39
|
});
|
|
41
|
-
const src = `${
|
|
42
|
-
const expectedOrigin = new URL(
|
|
40
|
+
const src = `${authorizeEndpoint}?${params.toString()}`;
|
|
41
|
+
const expectedOrigin = new URL(authorizeEndpoint).origin;
|
|
43
42
|
const iframe = document.createElement("iframe");
|
|
44
43
|
iframe.style.display = "none";
|
|
45
44
|
iframe.setAttribute("aria-hidden", "true");
|
|
@@ -96,51 +95,51 @@ async function signInSilent(opts) {
|
|
|
96
95
|
|
|
97
96
|
Object.defineProperty(exports, "CIMPLIFY_CDN_HOSTS", {
|
|
98
97
|
enumerable: true,
|
|
99
|
-
get: function () { return
|
|
98
|
+
get: function () { return chunk6DMHVQ42_js.CIMPLIFY_CDN_HOSTS; }
|
|
100
99
|
});
|
|
101
100
|
Object.defineProperty(exports, "DEFAULT_CDN_BASE_URL", {
|
|
102
101
|
enumerable: true,
|
|
103
|
-
get: function () { return
|
|
102
|
+
get: function () { return chunk6DMHVQ42_js.DEFAULT_CDN_BASE_URL; }
|
|
104
103
|
});
|
|
105
104
|
Object.defineProperty(exports, "DURATION_UNIT", {
|
|
106
105
|
enumerable: true,
|
|
107
|
-
get: function () { return
|
|
106
|
+
get: function () { return chunk6DMHVQ42_js.DURATION_UNIT; }
|
|
108
107
|
});
|
|
109
108
|
Object.defineProperty(exports, "INPUT_FIELD_TYPE", {
|
|
110
109
|
enumerable: true,
|
|
111
|
-
get: function () { return
|
|
110
|
+
get: function () { return chunk6DMHVQ42_js.INPUT_FIELD_TYPE; }
|
|
112
111
|
});
|
|
113
112
|
Object.defineProperty(exports, "PRODUCT_TYPE", {
|
|
114
113
|
enumerable: true,
|
|
115
|
-
get: function () { return
|
|
114
|
+
get: function () { return chunk6DMHVQ42_js.PRODUCT_TYPE; }
|
|
116
115
|
});
|
|
117
116
|
Object.defineProperty(exports, "RENDER_HINT", {
|
|
118
117
|
enumerable: true,
|
|
119
|
-
get: function () { return
|
|
118
|
+
get: function () { return chunk6DMHVQ42_js.RENDER_HINT; }
|
|
120
119
|
});
|
|
121
120
|
Object.defineProperty(exports, "allGalleryImages", {
|
|
122
121
|
enumerable: true,
|
|
123
|
-
get: function () { return
|
|
122
|
+
get: function () { return chunk6DMHVQ42_js.allGalleryImages; }
|
|
124
123
|
});
|
|
125
124
|
Object.defineProperty(exports, "assetUrl", {
|
|
126
125
|
enumerable: true,
|
|
127
|
-
get: function () { return
|
|
126
|
+
get: function () { return chunk6DMHVQ42_js.assetUrl; }
|
|
128
127
|
});
|
|
129
128
|
Object.defineProperty(exports, "getVariantDisplayName", {
|
|
130
129
|
enumerable: true,
|
|
131
|
-
get: function () { return
|
|
130
|
+
get: function () { return chunk6DMHVQ42_js.getVariantDisplayName; }
|
|
132
131
|
});
|
|
133
132
|
Object.defineProperty(exports, "isCimplifyAsset", {
|
|
134
133
|
enumerable: true,
|
|
135
|
-
get: function () { return
|
|
134
|
+
get: function () { return chunk6DMHVQ42_js.isCimplifyAsset; }
|
|
136
135
|
});
|
|
137
136
|
Object.defineProperty(exports, "resolveGallery", {
|
|
138
137
|
enumerable: true,
|
|
139
|
-
get: function () { return
|
|
138
|
+
get: function () { return chunk6DMHVQ42_js.resolveGallery; }
|
|
140
139
|
});
|
|
141
140
|
Object.defineProperty(exports, "startSignIn", {
|
|
142
141
|
enumerable: true,
|
|
143
|
-
get: function () { return
|
|
142
|
+
get: function () { return chunk6DMHVQ42_js.startSignIn; }
|
|
144
143
|
});
|
|
145
144
|
Object.defineProperty(exports, "isValidPhoneForContext", {
|
|
146
145
|
enumerable: true,
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { generatePkce, generateState } from './chunk-
|
|
2
|
-
export { CIMPLIFY_CDN_HOSTS, DEFAULT_CDN_BASE_URL, DURATION_UNIT, INPUT_FIELD_TYPE, PRODUCT_TYPE, RENDER_HINT, allGalleryImages, assetUrl, getVariantDisplayName, isCimplifyAsset, resolveGallery, startSignIn } from './chunk-
|
|
1
|
+
import { generatePkce, generateState } from './chunk-2AU263DK.mjs';
|
|
2
|
+
export { CIMPLIFY_CDN_HOSTS, DEFAULT_CDN_BASE_URL, DURATION_UNIT, INPUT_FIELD_TYPE, PRODUCT_TYPE, RENDER_HINT, allGalleryImages, assetUrl, getVariantDisplayName, isCimplifyAsset, resolveGallery, startSignIn } from './chunk-2AU263DK.mjs';
|
|
3
3
|
export { isValidPhoneForContext, normalizePhoneToE164, resolvePhoneCountryCode } from './chunk-YOIVZ6OA.mjs';
|
|
4
|
-
import './chunk-
|
|
4
|
+
import { getAuthorizationEndpoint, DEFAULT_ISSUER } from './chunk-XSOYJLMZ.mjs';
|
|
5
5
|
export { ActivityService, CimplifyClient, DeliveryService, PlacesService, SubscriptionService, SupportService, UploadService, createCimplifyClient } from './chunk-SQ7U3BWY.mjs';
|
|
6
6
|
export { AUTHORIZATION_TYPE, AUTH_MUTATION, AuthService, BusinessService, CHECKOUT_MODE, CHECKOUT_MUTATION, CHECKOUT_STEP, CONTACT_TYPE, CartOperations, CatalogueQueries, CheckoutService as CheckoutOperations, CheckoutService, CimplifyElement, CimplifyElements, DEFAULT_COUNTRY, DEFAULT_CURRENCY, DEVICE_TYPE, ELEMENT_TYPES, EVENT_TYPES, FxService, InventoryService, LINK_MUTATION, LINK_QUERY, LinkService, LiteService, MESSAGE_TYPES, MOBILE_MONEY_PROVIDER, ORDER_MUTATION, ORDER_TYPE, OrderQueries, PAYMENT_METHOD, PAYMENT_MUTATION, PAYMENT_STATE, PICKUP_TIME_TYPE, SchedulingService, combine, combineObject, createElements, err, flatMap, fromPromise, generateIdempotencyKey, getOrElse, isErr, isOk, mapError, mapResult, ok, toNullable, tryCatch, unwrap } from './chunk-I4IXPQIX.mjs';
|
|
7
7
|
export { CURRENCY_SYMBOLS, MOBILE_MONEY_PROVIDERS, categorizePaymentError, detectMobileMoneyProvider, formatMoney, formatNumberCompact, formatPrice, formatPriceAdjustment, formatPriceCompact, formatPriceRange, formatPriceWithTax, formatProductPrice, getBasePrice, getCurrencySymbol, getDiscountPercentage, getDisplayPrice, getMarkupPercentage, getPriceRange, getProductCurrency, getTaxAmount, getUnitPriceAtQuantity, hasTaxInfo, isOnSale, isPaymentStatusFailure, isPaymentStatusRequiresAction, isPaymentStatusSuccess, isTaxInclusive, normalizePaymentResponse, normalizeStatusResponse, parsePrice } from './chunk-TD3AY34U.mjs';
|
|
@@ -9,7 +9,6 @@ export { CimplifyError, ERROR_HINTS, ErrorCode, IdempotencyMismatchError, ZERO,
|
|
|
9
9
|
import './chunk-3G6RQLXK.mjs';
|
|
10
10
|
|
|
11
11
|
// src/silent-sign-in.ts
|
|
12
|
-
var DEFAULT_AUTH_URL = "https://auth.cimplify.io";
|
|
13
12
|
var DEFAULT_SCOPE = "openid email phone profile";
|
|
14
13
|
var DEFAULT_TIMEOUT_MS = 12e3;
|
|
15
14
|
async function signInSilent(opts) {
|
|
@@ -22,8 +21,8 @@ async function signInSilent(opts) {
|
|
|
22
21
|
}
|
|
23
22
|
} catch {
|
|
24
23
|
}
|
|
25
|
-
const authUrl = (opts.authUrl ?? DEFAULT_AUTH_URL).replace(/\/$/, "");
|
|
26
24
|
const callbackUri = opts.callbackUri ?? "/auth/callback";
|
|
25
|
+
const authorizeEndpoint = opts.authUrl ? `${opts.authUrl.replace(/\/$/, "")}/oauth/authorize` : await getAuthorizationEndpoint(opts.issuer ?? DEFAULT_ISSUER);
|
|
27
26
|
const pkce = await generatePkce();
|
|
28
27
|
const state = generateState();
|
|
29
28
|
const params = new URLSearchParams({
|
|
@@ -37,8 +36,8 @@ async function signInSilent(opts) {
|
|
|
37
36
|
code_challenge: pkce.challenge,
|
|
38
37
|
code_challenge_method: pkce.method
|
|
39
38
|
});
|
|
40
|
-
const src = `${
|
|
41
|
-
const expectedOrigin = new URL(
|
|
39
|
+
const src = `${authorizeEndpoint}?${params.toString()}`;
|
|
40
|
+
const expectedOrigin = new URL(authorizeEndpoint).origin;
|
|
42
41
|
const iframe = document.createElement("iframe");
|
|
43
42
|
iframe.style.display = "none";
|
|
44
43
|
iframe.setAttribute("aria-hidden", "true");
|
package/dist/react.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
-
import { d as AdSlot, c as AdPosition, a as AdContextValue, S as SignInOptions } from './sign-in-
|
|
3
|
-
export { A as AdConfig, g as getVariantDisplayName } from './sign-in-
|
|
2
|
+
import { d as AdSlot, c as AdPosition, a as AdContextValue, S as SignInOptions } from './sign-in-dr7m09nm.mjs';
|
|
3
|
+
export { A as AdConfig, g as getVariantDisplayName } from './sign-in-dr7m09nm.mjs';
|
|
4
4
|
import { ac as CimplifyClient, c0 as ProcessCheckoutResult, a9 as CheckoutStatus, aa as CheckoutStatusContext, w as Business, bd as Location, ch as ReorderResult, bK as OrderStatus, bt as Order, c2 as QuoteBundleSelectionInput, c3 as QuoteCompositeSelectionInput, bY as PriceQuote, c6 as QuoteUiMessage, cC as Service, r as AvailableSlot, au as DayAvailability, am as CustomerBooking, L as CancelBookingResult, f as ActivityStateResponse, cL as SessionMessage, c as ActivityRecommendation, aw as DeliveryFeeResponse, aX as FxRateResponse, cU as StorefrontBootstrap, X as ChatWidgetStarter, W as ChatMessage, h as AddressInfo, n as AuthenticatedData, aL as ElementsOptions, bS as PaymentMethodInfo, aJ as ElementsCheckoutResult, b$ as ProcessCheckoutOptions, af as CimplifyElements, b4 as LineItem, cO as Staff, cx as Room } from './client-DKg-5OWu.mjs';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
import { ab as CurrencyCode, aX as Product, aO as Pagination, T as CimplifyError, b9 as ProductWithDetails, Q as Category, aM as Money, C as BundleSelectionInput, $ as ComponentSelectionInput, z as BundleSelectionData, a8 as CompositeSelectionData, U as Collection, b4 as ProductTaxonomy, bt as TaxonomyWithChildren, b5 as ProductTimeProfile, ah as Deal, b0 as ProductDealInfo, an as DiscountValidation, E as BundleSummary, a6 as CompositePriceResult, bo as SubscriptionWithDetails, bn as SubscriptionStatus, bk as Subscription, ac as CustomAttributeDefinition, ba as PropertyFacet, a$ as ProductBillingPlan, bL as VariantView, bF as VariantAxisWithValues, f as AddOnWithOptions, w as BundleComponentView, x as BundlePriceType, a4 as CompositeGroupView, aq as DisplayCart, b1 as ProductInputField, bg as SchedulingMode, at as DurationUnit, ad as CustomAttributeValue, b2 as ProductProperty, bc as QuantityPricingTier } from './product-B_kS4Oxa.mjs';
|
package/dist/react.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React$1, { ReactNode } from 'react';
|
|
2
|
-
import { d as AdSlot, c as AdPosition, a as AdContextValue, S as SignInOptions } from './sign-in-
|
|
3
|
-
export { A as AdConfig, g as getVariantDisplayName } from './sign-in-
|
|
2
|
+
import { d as AdSlot, c as AdPosition, a as AdContextValue, S as SignInOptions } from './sign-in-dr7m09nm.js';
|
|
3
|
+
export { A as AdConfig, g as getVariantDisplayName } from './sign-in-dr7m09nm.js';
|
|
4
4
|
import { ac as CimplifyClient, c0 as ProcessCheckoutResult, a9 as CheckoutStatus, aa as CheckoutStatusContext, w as Business, bd as Location, ch as ReorderResult, bK as OrderStatus, bt as Order, c2 as QuoteBundleSelectionInput, c3 as QuoteCompositeSelectionInput, bY as PriceQuote, c6 as QuoteUiMessage, cC as Service, r as AvailableSlot, au as DayAvailability, am as CustomerBooking, L as CancelBookingResult, f as ActivityStateResponse, cL as SessionMessage, c as ActivityRecommendation, aw as DeliveryFeeResponse, aX as FxRateResponse, cU as StorefrontBootstrap, X as ChatWidgetStarter, W as ChatMessage, h as AddressInfo, n as AuthenticatedData, aL as ElementsOptions, bS as PaymentMethodInfo, aJ as ElementsCheckoutResult, b$ as ProcessCheckoutOptions, af as CimplifyElements, b4 as LineItem, cO as Staff, cx as Room } from './client-Dfg_hmkP.js';
|
|
5
5
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
6
6
|
import { ab as CurrencyCode, aX as Product, aO as Pagination, T as CimplifyError, b9 as ProductWithDetails, Q as Category, aM as Money, C as BundleSelectionInput, $ as ComponentSelectionInput, z as BundleSelectionData, a8 as CompositeSelectionData, U as Collection, b4 as ProductTaxonomy, bt as TaxonomyWithChildren, b5 as ProductTimeProfile, ah as Deal, b0 as ProductDealInfo, an as DiscountValidation, E as BundleSummary, a6 as CompositePriceResult, bo as SubscriptionWithDetails, bn as SubscriptionStatus, bk as Subscription, ac as CustomAttributeDefinition, ba as PropertyFacet, a$ as ProductBillingPlan, bL as VariantView, bF as VariantAxisWithValues, f as AddOnWithOptions, w as BundleComponentView, x as BundlePriceType, a4 as CompositeGroupView, aq as DisplayCart, b1 as ProductInputField, bg as SchedulingMode, at as DurationUnit, ad as CustomAttributeValue, b2 as ProductProperty, bc as QuantityPricingTier } from './product-B_kS4Oxa.js';
|
package/dist/react.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('./chunk-
|
|
4
|
+
var chunk6DMHVQ42_js = require('./chunk-6DMHVQ42.js');
|
|
5
|
+
require('./chunk-DKT62WQW.js');
|
|
6
6
|
var chunkMW7ICTVK_js = require('./chunk-MW7ICTVK.js');
|
|
7
7
|
var chunkJGBDWEPJ_js = require('./chunk-JGBDWEPJ.js');
|
|
8
8
|
var chunk7Y2O3E4D_js = require('./chunk-7Y2O3E4D.js');
|
|
@@ -2715,7 +2715,7 @@ function CimplifySignInButton({
|
|
|
2715
2715
|
const onClick = async () => {
|
|
2716
2716
|
if (busy || disabled) return;
|
|
2717
2717
|
setBusy(true);
|
|
2718
|
-
await
|
|
2718
|
+
await chunk6DMHVQ42_js.startSignIn({
|
|
2719
2719
|
...signInOpts,
|
|
2720
2720
|
onSuccess: () => {
|
|
2721
2721
|
setBusy(false);
|
|
@@ -5464,7 +5464,7 @@ function VariantSelector({
|
|
|
5464
5464
|
{
|
|
5465
5465
|
"data-cimplify-variant-name": true,
|
|
5466
5466
|
className: cn("flex-1 min-w-0 text-sm", classNames?.name),
|
|
5467
|
-
children:
|
|
5467
|
+
children: chunk6DMHVQ42_js.getVariantDisplayName(variant, productName)
|
|
5468
5468
|
}
|
|
5469
5469
|
),
|
|
5470
5470
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { "data-cimplify-variant-pricing": true, className: cn("text-sm text-muted-foreground", classNames?.pricing), children: [
|
|
@@ -6937,12 +6937,12 @@ function FieldInput({
|
|
|
6937
6937
|
classNames?.input
|
|
6938
6938
|
);
|
|
6939
6939
|
switch (field.field_type) {
|
|
6940
|
-
case
|
|
6941
|
-
case
|
|
6940
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Text:
|
|
6941
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Url:
|
|
6942
6942
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6943
6943
|
"input",
|
|
6944
6944
|
{
|
|
6945
|
-
type: field.field_type ===
|
|
6945
|
+
type: field.field_type === chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Url ? "url" : "text",
|
|
6946
6946
|
value: typeof value === "string" ? value : "",
|
|
6947
6947
|
onChange: (e) => onValueChange(e.target.value),
|
|
6948
6948
|
placeholder: field.placeholder,
|
|
@@ -6951,7 +6951,7 @@ function FieldInput({
|
|
|
6951
6951
|
className: inputClass
|
|
6952
6952
|
}
|
|
6953
6953
|
);
|
|
6954
|
-
case
|
|
6954
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Textarea:
|
|
6955
6955
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6956
6956
|
"textarea",
|
|
6957
6957
|
{
|
|
@@ -6964,7 +6964,7 @@ function FieldInput({
|
|
|
6964
6964
|
className: cn(inputClass, "resize-none", classNames?.textarea)
|
|
6965
6965
|
}
|
|
6966
6966
|
);
|
|
6967
|
-
case
|
|
6967
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Number:
|
|
6968
6968
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
6969
6969
|
"input",
|
|
6970
6970
|
{
|
|
@@ -6978,7 +6978,7 @@ function FieldInput({
|
|
|
6978
6978
|
className: inputClass
|
|
6979
6979
|
}
|
|
6980
6980
|
);
|
|
6981
|
-
case
|
|
6981
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Select:
|
|
6982
6982
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6983
6983
|
"select",
|
|
6984
6984
|
{
|
|
@@ -6992,7 +6992,7 @@ function FieldInput({
|
|
|
6992
6992
|
]
|
|
6993
6993
|
}
|
|
6994
6994
|
);
|
|
6995
|
-
case
|
|
6995
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Radio:
|
|
6996
6996
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-2", classNames?.radioGroup), children: (field.options || []).map((opt) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
6997
6997
|
"label",
|
|
6998
6998
|
{
|
|
@@ -7017,7 +7017,7 @@ function FieldInput({
|
|
|
7017
7017
|
},
|
|
7018
7018
|
opt
|
|
7019
7019
|
)) });
|
|
7020
|
-
case
|
|
7020
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Checkbox:
|
|
7021
7021
|
return /* @__PURE__ */ jsxRuntime.jsxs("label", { className: cn("flex items-center gap-2 text-sm cursor-pointer", classNames?.checkboxLabel), children: [
|
|
7022
7022
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7023
7023
|
"input",
|
|
@@ -7030,7 +7030,7 @@ function FieldInput({
|
|
|
7030
7030
|
),
|
|
7031
7031
|
field.placeholder || field.name
|
|
7032
7032
|
] });
|
|
7033
|
-
case
|
|
7033
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Color:
|
|
7034
7034
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7035
7035
|
"input",
|
|
7036
7036
|
{
|
|
@@ -7040,7 +7040,7 @@ function FieldInput({
|
|
|
7040
7040
|
className: cn("w-12 h-10 rounded-md border border-input cursor-pointer", classNames?.colorInput)
|
|
7041
7041
|
}
|
|
7042
7042
|
);
|
|
7043
|
-
case
|
|
7043
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Date:
|
|
7044
7044
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7045
7045
|
DatePicker,
|
|
7046
7046
|
{
|
|
@@ -7051,8 +7051,8 @@ function FieldInput({
|
|
|
7051
7051
|
"aria-label": field.name
|
|
7052
7052
|
}
|
|
7053
7053
|
);
|
|
7054
|
-
case
|
|
7055
|
-
case
|
|
7054
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.File:
|
|
7055
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Image:
|
|
7056
7056
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7057
7057
|
FileUploadInput,
|
|
7058
7058
|
{
|
|
@@ -7063,7 +7063,7 @@ function FieldInput({
|
|
|
7063
7063
|
classNames
|
|
7064
7064
|
}
|
|
7065
7065
|
);
|
|
7066
|
-
case
|
|
7066
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Email:
|
|
7067
7067
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7068
7068
|
"input",
|
|
7069
7069
|
{
|
|
@@ -7075,7 +7075,7 @@ function FieldInput({
|
|
|
7075
7075
|
className: inputClass
|
|
7076
7076
|
}
|
|
7077
7077
|
);
|
|
7078
|
-
case
|
|
7078
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.DateTime: {
|
|
7079
7079
|
const stringValue = typeof value === "string" ? value : "";
|
|
7080
7080
|
const [datePart, timePartRaw] = stringValue.includes("T") ? stringValue.split("T", 2) : [stringValue, ""];
|
|
7081
7081
|
const timePart = (timePartRaw ?? "").slice(0, 5);
|
|
@@ -7114,7 +7114,7 @@ function FieldInput({
|
|
|
7114
7114
|
)
|
|
7115
7115
|
] });
|
|
7116
7116
|
}
|
|
7117
|
-
case
|
|
7117
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Time:
|
|
7118
7118
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7119
7119
|
TimePicker,
|
|
7120
7120
|
{
|
|
@@ -7125,7 +7125,7 @@ function FieldInput({
|
|
|
7125
7125
|
"aria-label": field.name
|
|
7126
7126
|
}
|
|
7127
7127
|
);
|
|
7128
|
-
case
|
|
7128
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.MultiSelect:
|
|
7129
7129
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7130
7130
|
MultiSelectInput,
|
|
7131
7131
|
{
|
|
@@ -7135,7 +7135,7 @@ function FieldInput({
|
|
|
7135
7135
|
classNames
|
|
7136
7136
|
}
|
|
7137
7137
|
);
|
|
7138
|
-
case
|
|
7138
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.DateRange:
|
|
7139
7139
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7140
7140
|
DateRangeInput,
|
|
7141
7141
|
{
|
|
@@ -7145,7 +7145,7 @@ function FieldInput({
|
|
|
7145
7145
|
classNames
|
|
7146
7146
|
}
|
|
7147
7147
|
);
|
|
7148
|
-
case
|
|
7148
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Address:
|
|
7149
7149
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7150
7150
|
AddressInput,
|
|
7151
7151
|
{
|
|
@@ -7156,7 +7156,7 @@ function FieldInput({
|
|
|
7156
7156
|
inputClass
|
|
7157
7157
|
}
|
|
7158
7158
|
);
|
|
7159
|
-
case
|
|
7159
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Location:
|
|
7160
7160
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7161
7161
|
LocationInput,
|
|
7162
7162
|
{
|
|
@@ -7167,7 +7167,7 @@ function FieldInput({
|
|
|
7167
7167
|
inputClass
|
|
7168
7168
|
}
|
|
7169
7169
|
);
|
|
7170
|
-
case
|
|
7170
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Phone:
|
|
7171
7171
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7172
7172
|
PhoneInput,
|
|
7173
7173
|
{
|
|
@@ -7178,7 +7178,7 @@ function FieldInput({
|
|
|
7178
7178
|
inputClass
|
|
7179
7179
|
}
|
|
7180
7180
|
);
|
|
7181
|
-
case
|
|
7181
|
+
case chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Signature:
|
|
7182
7182
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
7183
7183
|
SignatureInput,
|
|
7184
7184
|
{
|
|
@@ -7211,7 +7211,7 @@ function FileUploadInput({
|
|
|
7211
7211
|
const [isUploading, setIsUploading] = React12__default.default.useState(false);
|
|
7212
7212
|
const fileUrl = typeof value === "string" ? value : void 0;
|
|
7213
7213
|
const acceptedFormats = field.validation?.accepted_formats;
|
|
7214
|
-
const accept = acceptedFormats ? acceptedFormats.map((f) => `.${f}`).join(",") : field.field_type ===
|
|
7214
|
+
const accept = acceptedFormats ? acceptedFormats.map((f) => `.${f}`).join(",") : field.field_type === chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Image ? "image/*" : void 0;
|
|
7215
7215
|
const handleFile = async (file) => {
|
|
7216
7216
|
if (!onFileUpload) return;
|
|
7217
7217
|
if (field.validation?.max_size_mb) {
|
|
@@ -7229,7 +7229,7 @@ function FileUploadInput({
|
|
|
7229
7229
|
}
|
|
7230
7230
|
};
|
|
7231
7231
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-2", classNames?.fileInput), children: fileUrl ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
7232
|
-
field.field_type ===
|
|
7232
|
+
field.field_type === chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Image && /* @__PURE__ */ jsxRuntime.jsx("img", { src: fileUrl, alt: "Uploaded", className: "w-16 h-16 object-cover rounded-md border border-border" }),
|
|
7233
7233
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-foreground truncate", children: fileUrl.split("/").pop() }) }),
|
|
7234
7234
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
7235
7235
|
"button",
|
|
@@ -7255,7 +7255,7 @@ function FileUploadInput({
|
|
|
7255
7255
|
}
|
|
7256
7256
|
),
|
|
7257
7257
|
isUploading ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: "Uploading..." }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
7258
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: field.placeholder || `Upload ${field.field_type ===
|
|
7258
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: field.placeholder || `Upload ${field.field_type === chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Image ? "image" : "file"}` }),
|
|
7259
7259
|
acceptedFormats && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs text-muted-foreground/60 mt-1", children: [
|
|
7260
7260
|
acceptedFormats.map((f) => f.toUpperCase()).join(", "),
|
|
7261
7261
|
field.validation?.max_size_mb && ` \xB7 Max ${field.validation.max_size_mb}MB`
|
|
@@ -8877,7 +8877,7 @@ function CartLineItemRow({
|
|
|
8877
8877
|
const isOptimistic = item.isOptimistic === true;
|
|
8878
8878
|
const lineTotal = chunk7Y2O3E4D_js.parsePrice(unitPrice) * item.quantity;
|
|
8879
8879
|
const imageUrl = item.product.image_url;
|
|
8880
|
-
const variantLabel = item.variant ?
|
|
8880
|
+
const variantLabel = item.variant ? chunk6DMHVQ42_js.getVariantDisplayName(item.variant, item.product.name) : null;
|
|
8881
8881
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
8882
8882
|
"div",
|
|
8883
8883
|
{
|
|
@@ -8977,7 +8977,7 @@ function CartLineItemRow({
|
|
|
8977
8977
|
input.field_name,
|
|
8978
8978
|
":"
|
|
8979
8979
|
] }),
|
|
8980
|
-
/* @__PURE__ */ jsxRuntime.jsx("dd", { "data-cimplify-cart-input-value": true, className: "text-foreground m-0 truncate", children: input.field_type ===
|
|
8980
|
+
/* @__PURE__ */ jsxRuntime.jsx("dd", { "data-cimplify-cart-input-value": true, className: "text-foreground m-0 truncate", children: input.field_type === chunk6DMHVQ42_js.INPUT_FIELD_TYPE.File || input.field_type === chunk6DMHVQ42_js.INPUT_FIELD_TYPE.Image ? String(input.value).split("/").pop() || "Uploaded file" : String(input.value) })
|
|
8981
8981
|
] }, input.field_id)) }),
|
|
8982
8982
|
(item.lineType === "service" || item.product.type === "service") && item.scheduledStart && /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-cimplify-cart-service-info": true, className: cn("mt-1.5 flex items-center gap-1.5 text-xs text-muted-foreground", classNames?.serviceInfo), children: [
|
|
8983
8983
|
/* @__PURE__ */ jsxRuntime.jsx("svg", { className: "w-3.5 h-3.5 shrink-0", fill: "none", stroke: "currentColor", strokeWidth: "2", viewBox: "0 0 24 24", "aria-hidden": true, children: /* @__PURE__ */ jsxRuntime.jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" }) }),
|
|
@@ -9533,7 +9533,7 @@ function FoodProductCard({
|
|
|
9533
9533
|
const tags = product.tags || [];
|
|
9534
9534
|
const isSignature = product.metadata?.is_signature === true;
|
|
9535
9535
|
const isNew = product.metadata?.is_new === true;
|
|
9536
|
-
const isComposite = product.type ===
|
|
9536
|
+
const isComposite = product.type === chunk6DMHVQ42_js.PRODUCT_TYPE.Composite;
|
|
9537
9537
|
return /* @__PURE__ */ jsxRuntime.jsxs(CardShell, { product, renderLink, className, children: [
|
|
9538
9538
|
/* @__PURE__ */ jsxRuntime.jsxs(CardImage, { src: image, alt: product.name, aspectRatio: "square", renderImage, children: [
|
|
9539
9539
|
isSignature && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "absolute top-3 left-3 inline-flex items-center gap-1 text-[11px] font-semibold tracking-wide bg-amber-50 text-amber-700 border border-amber-200/60 px-2 py-0.5 rounded-md", children: [
|
|
@@ -10286,26 +10286,26 @@ var BUILT_IN_CARDS = {
|
|
|
10286
10286
|
["composite" /* Composite */]: CompositeProductCard,
|
|
10287
10287
|
["subscription" /* Subscription */]: SubscriptionCard
|
|
10288
10288
|
};
|
|
10289
|
-
var RENTAL_UNITS = /* @__PURE__ */ new Set([
|
|
10290
|
-
var LEASE_UNITS = /* @__PURE__ */ new Set([
|
|
10289
|
+
var RENTAL_UNITS = /* @__PURE__ */ new Set([chunk6DMHVQ42_js.DURATION_UNIT.Days, chunk6DMHVQ42_js.DURATION_UNIT.Hours]);
|
|
10290
|
+
var LEASE_UNITS = /* @__PURE__ */ new Set([chunk6DMHVQ42_js.DURATION_UNIT.Weeks, chunk6DMHVQ42_js.DURATION_UNIT.Months, chunk6DMHVQ42_js.DURATION_UNIT.Years]);
|
|
10291
10291
|
function resolveCardVariant(product) {
|
|
10292
|
-
if (product.type ===
|
|
10292
|
+
if (product.type === chunk6DMHVQ42_js.PRODUCT_TYPE.Bundle) {
|
|
10293
10293
|
return "bundle" /* Bundle */;
|
|
10294
10294
|
}
|
|
10295
|
-
if (product.type ===
|
|
10295
|
+
if (product.type === chunk6DMHVQ42_js.PRODUCT_TYPE.Composite) {
|
|
10296
10296
|
return "composite" /* Composite */;
|
|
10297
10297
|
}
|
|
10298
10298
|
if (product.quantity_pricing && product.quantity_pricing.length > 1) {
|
|
10299
10299
|
return "wholesale" /* Wholesale */;
|
|
10300
10300
|
}
|
|
10301
|
-
if (product.type ===
|
|
10301
|
+
if (product.type === chunk6DMHVQ42_js.PRODUCT_TYPE.Digital) {
|
|
10302
10302
|
return "digital" /* Digital */;
|
|
10303
10303
|
}
|
|
10304
|
-
if (product.type ===
|
|
10304
|
+
if (product.type === chunk6DMHVQ42_js.PRODUCT_TYPE.Service) {
|
|
10305
10305
|
if (product.duration_unit && RENTAL_UNITS.has(product.duration_unit)) {
|
|
10306
10306
|
return "rental" /* Rental */;
|
|
10307
10307
|
}
|
|
10308
|
-
if (product.duration_unit ===
|
|
10308
|
+
if (product.duration_unit === chunk6DMHVQ42_js.DURATION_UNIT.Nights) {
|
|
10309
10309
|
return "accommodation" /* Accommodation */;
|
|
10310
10310
|
}
|
|
10311
10311
|
if (product.duration_unit && LEASE_UNITS.has(product.duration_unit)) {
|
|
@@ -10316,10 +10316,10 @@ function resolveCardVariant(product) {
|
|
|
10316
10316
|
}
|
|
10317
10317
|
return "standard" /* Standard */;
|
|
10318
10318
|
}
|
|
10319
|
-
if (product.render_hint ===
|
|
10319
|
+
if (product.render_hint === chunk6DMHVQ42_js.RENDER_HINT.Food) {
|
|
10320
10320
|
return "food" /* Food */;
|
|
10321
10321
|
}
|
|
10322
|
-
if (product.render_hint ===
|
|
10322
|
+
if (product.render_hint === chunk6DMHVQ42_js.RENDER_HINT.Physical) {
|
|
10323
10323
|
return "retail" /* Retail */;
|
|
10324
10324
|
}
|
|
10325
10325
|
return "retail" /* Retail */;
|
|
@@ -12625,7 +12625,7 @@ function DefaultProductLayout({
|
|
|
12625
12625
|
className
|
|
12626
12626
|
}) {
|
|
12627
12627
|
const [selectedVariantId, setSelectedVariantId] = React12__default.default.useState();
|
|
12628
|
-
const images =
|
|
12628
|
+
const images = chunk6DMHVQ42_js.resolveGallery(product, selectedVariantId);
|
|
12629
12629
|
const hasRange = product.quantity_pricing && product.quantity_pricing.length > 1 || product.variants && product.variants.length > 1;
|
|
12630
12630
|
const onSale = chunk7Y2O3E4D_js.isOnSale(product);
|
|
12631
12631
|
const hasPhysicalDetails = product.sku || product.vendor || product.material;
|
|
@@ -13261,25 +13261,25 @@ function resolveTemplateKey(product) {
|
|
|
13261
13261
|
if (typeof metaTemplate === "string" && metaTemplate.trim()) {
|
|
13262
13262
|
return metaTemplate.trim();
|
|
13263
13263
|
}
|
|
13264
|
-
if (product.type ===
|
|
13264
|
+
if (product.type === chunk6DMHVQ42_js.PRODUCT_TYPE.Bundle) {
|
|
13265
13265
|
return "bundle" /* Bundle */;
|
|
13266
13266
|
}
|
|
13267
|
-
if (product.type ===
|
|
13267
|
+
if (product.type === chunk6DMHVQ42_js.PRODUCT_TYPE.Composite) {
|
|
13268
13268
|
return "composite" /* Composite */;
|
|
13269
13269
|
}
|
|
13270
13270
|
if (product.quantity_pricing && product.quantity_pricing.length > 1) {
|
|
13271
13271
|
return "wholesale" /* Wholesale */;
|
|
13272
13272
|
}
|
|
13273
|
-
if (product.type ===
|
|
13273
|
+
if (product.type === chunk6DMHVQ42_js.PRODUCT_TYPE.Service) {
|
|
13274
13274
|
return "service" /* Service */;
|
|
13275
13275
|
}
|
|
13276
|
-
if (product.type ===
|
|
13276
|
+
if (product.type === chunk6DMHVQ42_js.PRODUCT_TYPE.Digital) {
|
|
13277
13277
|
return "digital" /* Digital */;
|
|
13278
13278
|
}
|
|
13279
|
-
if (product.render_hint ===
|
|
13279
|
+
if (product.render_hint === chunk6DMHVQ42_js.RENDER_HINT.Food) {
|
|
13280
13280
|
return "food" /* Food */;
|
|
13281
13281
|
}
|
|
13282
|
-
if (product.render_hint ===
|
|
13282
|
+
if (product.render_hint === chunk6DMHVQ42_js.RENDER_HINT.Physical) {
|
|
13283
13283
|
return "physical" /* Physical */;
|
|
13284
13284
|
}
|
|
13285
13285
|
return "default" /* Default */;
|
|
@@ -15505,7 +15505,7 @@ function SparkleIcon({ className }) {
|
|
|
15505
15505
|
|
|
15506
15506
|
Object.defineProperty(exports, "getVariantDisplayName", {
|
|
15507
15507
|
enumerable: true,
|
|
15508
|
-
get: function () { return
|
|
15508
|
+
get: function () { return chunk6DMHVQ42_js.getVariantDisplayName; }
|
|
15509
15509
|
});
|
|
15510
15510
|
exports.AccommodationCard = AccommodationCard;
|
|
15511
15511
|
exports.AccountContent = AccountContent;
|
package/dist/react.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { DURATION_UNIT, getVariantDisplayName, INPUT_FIELD_TYPE, PRODUCT_TYPE, resolveGallery, startSignIn, RENDER_HINT } from './chunk-
|
|
3
|
-
export { getVariantDisplayName } from './chunk-
|
|
4
|
-
import './chunk-
|
|
2
|
+
import { DURATION_UNIT, getVariantDisplayName, INPUT_FIELD_TYPE, PRODUCT_TYPE, resolveGallery, startSignIn, RENDER_HINT } from './chunk-2AU263DK.mjs';
|
|
3
|
+
export { getVariantDisplayName } from './chunk-2AU263DK.mjs';
|
|
4
|
+
import './chunk-XSOYJLMZ.mjs';
|
|
5
5
|
import { createCimplifyClient } from './chunk-SQ7U3BWY.mjs';
|
|
6
6
|
import { ELEMENT_TYPES, EVENT_TYPES } from './chunk-I4IXPQIX.mjs';
|
|
7
7
|
import { formatPrice, parsePrice, getUnitPriceAtQuantity, isOnSale, getDiscountPercentage, getBasePrice, getPriceRange, formatPriceRange } from './chunk-TD3AY34U.mjs';
|
package/dist/server.d.mts
CHANGED
|
@@ -194,6 +194,10 @@ declare function updateByTag(tag: string): Promise<void>;
|
|
|
194
194
|
declare function refreshPage(): Promise<void>;
|
|
195
195
|
|
|
196
196
|
interface OidcConfig {
|
|
197
|
+
/** OIDC issuer — the discovery anchor. Every endpoint is read from its
|
|
198
|
+
* /.well-known/openid-configuration. Defaults to https://api.cimplify.io. */
|
|
199
|
+
issuer?: string;
|
|
200
|
+
/** @deprecated Use `issuer`. Kept as an alias for one release. */
|
|
197
201
|
authUrl?: string;
|
|
198
202
|
clientId: string;
|
|
199
203
|
cookieName?: string;
|
package/dist/server.d.ts
CHANGED
|
@@ -194,6 +194,10 @@ declare function updateByTag(tag: string): Promise<void>;
|
|
|
194
194
|
declare function refreshPage(): Promise<void>;
|
|
195
195
|
|
|
196
196
|
interface OidcConfig {
|
|
197
|
+
/** OIDC issuer — the discovery anchor. Every endpoint is read from its
|
|
198
|
+
* /.well-known/openid-configuration. Defaults to https://api.cimplify.io. */
|
|
199
|
+
issuer?: string;
|
|
200
|
+
/** @deprecated Use `issuer`. Kept as an alias for one release. */
|
|
197
201
|
authUrl?: string;
|
|
198
202
|
clientId: string;
|
|
199
203
|
cookieName?: string;
|
package/dist/server.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkDKT62WQW_js = require('./chunk-DKT62WQW.js');
|
|
4
4
|
var chunkMW7ICTVK_js = require('./chunk-MW7ICTVK.js');
|
|
5
5
|
require('./chunk-JGBDWEPJ.js');
|
|
6
6
|
require('./chunk-7Y2O3E4D.js');
|
|
@@ -238,7 +238,6 @@ async function refreshPage() {
|
|
|
238
238
|
const fn = await getRefresh();
|
|
239
239
|
fn();
|
|
240
240
|
}
|
|
241
|
-
var DEFAULT_AUTH_URL = "https://auth.cimplify.io";
|
|
242
241
|
var SESSION_COOKIE = "cimplify_session";
|
|
243
242
|
var ACCESS_TOKEN_COOKIE = "cimplify_access";
|
|
244
243
|
var HEADER_LOCATION = "Location";
|
|
@@ -248,8 +247,8 @@ var PARAM_ERROR = "error";
|
|
|
248
247
|
var QUERY_AUTH_ERROR = "cimplify_auth_error";
|
|
249
248
|
var discoveryCache = /* @__PURE__ */ new Map();
|
|
250
249
|
var jwksCache = /* @__PURE__ */ new Map();
|
|
251
|
-
function
|
|
252
|
-
return (cfg.authUrl ??
|
|
250
|
+
function issuerBase(cfg) {
|
|
251
|
+
return (cfg.issuer ?? cfg.authUrl ?? chunkDKT62WQW_js.DEFAULT_ISSUER).replace(/\/$/, "");
|
|
253
252
|
}
|
|
254
253
|
function cookieName(cfg) {
|
|
255
254
|
return cfg.cookieName ?? SESSION_COOKIE;
|
|
@@ -258,7 +257,7 @@ function accessTokenCookieName(cfg) {
|
|
|
258
257
|
return cfg.accessTokenCookieName ?? ACCESS_TOKEN_COOKIE;
|
|
259
258
|
}
|
|
260
259
|
async function discovery(cfg) {
|
|
261
|
-
const base =
|
|
260
|
+
const base = issuerBase(cfg);
|
|
262
261
|
let p = discoveryCache.get(base);
|
|
263
262
|
if (!p) {
|
|
264
263
|
p = fetch(`${base}/.well-known/openid-configuration`, {
|
|
@@ -423,12 +422,12 @@ async function handleOidcCallback(req, opts) {
|
|
|
423
422
|
}
|
|
424
423
|
function readPkceCookie(cookieHeader) {
|
|
425
424
|
if (!cookieHeader) return null;
|
|
426
|
-
const match = cookieHeader.split(/;\s*/).find((p) => p.startsWith(`${
|
|
425
|
+
const match = cookieHeader.split(/;\s*/).find((p) => p.startsWith(`${chunkDKT62WQW_js.PKCE_COOKIE}=`));
|
|
427
426
|
if (!match) return null;
|
|
428
|
-
return
|
|
427
|
+
return chunkDKT62WQW_js.decodePkceState(match.slice(chunkDKT62WQW_js.PKCE_COOKIE.length + 1));
|
|
429
428
|
}
|
|
430
429
|
function buildPkceClearCookie() {
|
|
431
|
-
return `${
|
|
430
|
+
return `${chunkDKT62WQW_js.PKCE_COOKIE}=; Path=${chunkDKT62WQW_js.PKCE_COOKIE_PATH}; Max-Age=0; Secure; SameSite=Lax`;
|
|
432
431
|
}
|
|
433
432
|
function safeReturnPath(returnTo, fallback) {
|
|
434
433
|
if (returnTo && returnTo.startsWith("/") && !returnTo.startsWith("//")) return returnTo;
|
package/dist/server.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PKCE_COOKIE, decodePkceState, PKCE_COOKIE_PATH } from './chunk-
|
|
1
|
+
import { PKCE_COOKIE, decodePkceState, PKCE_COOKIE_PATH, DEFAULT_ISSUER } from './chunk-XSOYJLMZ.mjs';
|
|
2
2
|
import { createCimplifyClient } from './chunk-SQ7U3BWY.mjs';
|
|
3
3
|
import './chunk-I4IXPQIX.mjs';
|
|
4
4
|
import './chunk-TD3AY34U.mjs';
|
|
@@ -236,7 +236,6 @@ async function refreshPage() {
|
|
|
236
236
|
const fn = await getRefresh();
|
|
237
237
|
fn();
|
|
238
238
|
}
|
|
239
|
-
var DEFAULT_AUTH_URL = "https://auth.cimplify.io";
|
|
240
239
|
var SESSION_COOKIE = "cimplify_session";
|
|
241
240
|
var ACCESS_TOKEN_COOKIE = "cimplify_access";
|
|
242
241
|
var HEADER_LOCATION = "Location";
|
|
@@ -246,8 +245,8 @@ var PARAM_ERROR = "error";
|
|
|
246
245
|
var QUERY_AUTH_ERROR = "cimplify_auth_error";
|
|
247
246
|
var discoveryCache = /* @__PURE__ */ new Map();
|
|
248
247
|
var jwksCache = /* @__PURE__ */ new Map();
|
|
249
|
-
function
|
|
250
|
-
return (cfg.authUrl ??
|
|
248
|
+
function issuerBase(cfg) {
|
|
249
|
+
return (cfg.issuer ?? cfg.authUrl ?? DEFAULT_ISSUER).replace(/\/$/, "");
|
|
251
250
|
}
|
|
252
251
|
function cookieName(cfg) {
|
|
253
252
|
return cfg.cookieName ?? SESSION_COOKIE;
|
|
@@ -256,7 +255,7 @@ function accessTokenCookieName(cfg) {
|
|
|
256
255
|
return cfg.accessTokenCookieName ?? ACCESS_TOKEN_COOKIE;
|
|
257
256
|
}
|
|
258
257
|
async function discovery(cfg) {
|
|
259
|
-
const base =
|
|
258
|
+
const base = issuerBase(cfg);
|
|
260
259
|
let p = discoveryCache.get(base);
|
|
261
260
|
if (!p) {
|
|
262
261
|
p = fetch(`${base}/.well-known/openid-configuration`, {
|
|
@@ -30,6 +30,10 @@ interface SignInOptions {
|
|
|
30
30
|
redirectUri: string;
|
|
31
31
|
callbackUri?: string;
|
|
32
32
|
scope?: string;
|
|
33
|
+
/** OIDC issuer. The authorize host is resolved from its discovery document.
|
|
34
|
+
* Defaults to https://api.cimplify.io. */
|
|
35
|
+
issuer?: string;
|
|
36
|
+
/** @deprecated Pass `issuer`. If set, used directly as the authorize host. */
|
|
33
37
|
authUrl?: string;
|
|
34
38
|
loginHint?: string;
|
|
35
39
|
prompt?: "none" | "login" | "consent";
|
|
@@ -30,6 +30,10 @@ interface SignInOptions {
|
|
|
30
30
|
redirectUri: string;
|
|
31
31
|
callbackUri?: string;
|
|
32
32
|
scope?: string;
|
|
33
|
+
/** OIDC issuer. The authorize host is resolved from its discovery document.
|
|
34
|
+
* Defaults to https://api.cimplify.io. */
|
|
35
|
+
issuer?: string;
|
|
36
|
+
/** @deprecated Pass `issuer`. If set, used directly as the authorize host. */
|
|
33
37
|
authUrl?: string;
|
|
34
38
|
loginHint?: string;
|
|
35
39
|
prompt?: "none" | "login" | "consent";
|
package/package.json
CHANGED
package/dist/chunk-LA2T2TPA.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
// src/internal/pkce-cookie.ts
|
|
4
|
-
var PKCE_COOKIE = "cimplify_pkce";
|
|
5
|
-
var PKCE_COOKIE_PATH = "/auth";
|
|
6
|
-
var PKCE_COOKIE_MAX_AGE_SECONDS = 600;
|
|
7
|
-
function encodePkceState(state) {
|
|
8
|
-
return encodeURIComponent(JSON.stringify(state));
|
|
9
|
-
}
|
|
10
|
-
function decodePkceState(raw) {
|
|
11
|
-
try {
|
|
12
|
-
const parsed = JSON.parse(decodeURIComponent(raw));
|
|
13
|
-
if (typeof parsed?.verifier === "string" && typeof parsed.state === "string" && typeof parsed.returnTo === "string") {
|
|
14
|
-
return { verifier: parsed.verifier, state: parsed.state, returnTo: parsed.returnTo };
|
|
15
|
-
}
|
|
16
|
-
} catch {
|
|
17
|
-
}
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
exports.PKCE_COOKIE = PKCE_COOKIE;
|
|
22
|
-
exports.PKCE_COOKIE_MAX_AGE_SECONDS = PKCE_COOKIE_MAX_AGE_SECONDS;
|
|
23
|
-
exports.PKCE_COOKIE_PATH = PKCE_COOKIE_PATH;
|
|
24
|
-
exports.decodePkceState = decodePkceState;
|
|
25
|
-
exports.encodePkceState = encodePkceState;
|
package/dist/chunk-ZKTXRWP6.mjs
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// src/internal/pkce-cookie.ts
|
|
2
|
-
var PKCE_COOKIE = "cimplify_pkce";
|
|
3
|
-
var PKCE_COOKIE_PATH = "/auth";
|
|
4
|
-
var PKCE_COOKIE_MAX_AGE_SECONDS = 600;
|
|
5
|
-
function encodePkceState(state) {
|
|
6
|
-
return encodeURIComponent(JSON.stringify(state));
|
|
7
|
-
}
|
|
8
|
-
function decodePkceState(raw) {
|
|
9
|
-
try {
|
|
10
|
-
const parsed = JSON.parse(decodeURIComponent(raw));
|
|
11
|
-
if (typeof parsed?.verifier === "string" && typeof parsed.state === "string" && typeof parsed.returnTo === "string") {
|
|
12
|
-
return { verifier: parsed.verifier, state: parsed.state, returnTo: parsed.returnTo };
|
|
13
|
-
}
|
|
14
|
-
} catch {
|
|
15
|
-
}
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { PKCE_COOKIE, PKCE_COOKIE_MAX_AGE_SECONDS, PKCE_COOKIE_PATH, decodePkceState, encodePkceState };
|