@replohq/sdk 1.7.2 → 1.8.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/_vendor/replo-utils/lib/string.d.ts +0 -2
- package/_vendor/schemas/errors.d.ts +0 -3
- package/_vendor/schemas/loaderKeys.mjs +0 -1
- package/_vendor/schemas/money.d.ts +1 -1
- package/_vendor/schemas/money.mjs +0 -6
- package/_vendor/schemas/routing/rules.mjs +0 -1
- package/analytics/analytics-provider.js +0 -1
- package/analytics/analytics-sink.js +0 -1
- package/analytics/get-analytics-sinks.js +0 -1
- package/analytics/hooks/use-collection-viewed-analytics.d.ts +19 -0
- package/analytics/hooks/use-collection-viewed-analytics.js +26 -0
- package/analytics/hooks/use-product-viewed-analytics.js +0 -1
- package/analytics/replo-first-party-pixel.js +0 -1
- package/analytics/replo-pixel-script.js +0 -1
- package/analytics/sinks/converge-event-mapper.js +0 -1
- package/analytics/sinks/converge-sink.js +0 -1
- package/analytics/sinks/elevar-sink.js +1 -4
- package/analytics/sinks/ga4-sink.js +23 -5
- package/analytics/sinks/meta-sink.js +0 -4
- package/analytics/sinks/northbeam-sink.js +0 -1
- package/analytics/sinks/pinterest-sink.js +19 -5
- package/analytics/sinks/reddit-sink.js +16 -5
- package/analytics/sinks/replo-sink.js +0 -2
- package/analytics/sinks/snapchat-sink.js +0 -4
- package/analytics/sinks/tiktok-sink.js +18 -5
- package/analytics/sinks/window-sink.js +0 -3
- package/analytics/utils/analytics-products.d.ts +36 -0
- package/analytics/utils/analytics-products.js +57 -0
- package/analytics/utils/analytics-utils.js +0 -1
- package/analytics/utils/collection-analytics.d.ts +44 -0
- package/analytics/utils/collection-analytics.js +41 -0
- package/analytics/utils/navigation-tracker.js +0 -1
- package/analytics/utils/shopify-funnel-gate.js +0 -1
- package/cart/buy-now-action.js +0 -3
- package/cart/cart-actions.js +0 -1
- package/cart/cart-loader.js +0 -1
- package/cart/cart-provider.js +1 -2
- package/cart/cart-schema.js +0 -1
- package/cart/cart-types.js +0 -1
- package/cart/gateways/cart-constants.js +0 -2
- package/cart/gateways/cart-gateway.js +0 -1
- package/cart/gateways/cookie-cart-gateway.js +0 -5
- package/cart/gateways/default-cart-gateway.js +0 -1
- package/cart/gateways/resolver-cart-gateway.js +0 -5
- package/cart/gateways/stripe-cart-gateway.js +0 -1
- package/cart/hooks/use-add-to-cart.js +0 -4
- package/cart/hooks/use-buy-now.js +0 -1
- package/cart/return-urls.js +0 -1
- package/cart/storefront-urls.js +0 -1
- package/cart/utils/cart-adjustments.js +0 -1
- package/cart/utils/cart-analytics.js +0 -1
- package/cart/utils/cart-error.js +0 -1
- package/cart/utils/cart-utils.js +0 -1
- package/cart/utils/cookie-cart-persistence.js +0 -1
- package/cart/utils/variant-to-cart-line.js +0 -6
- package/chunk-7OPH5UFQ.mjs +0 -1
- package/chunk-AL3F36PH.mjs +5 -127
- package/chunk-EUQVEPSD.mjs +0 -1
- package/chunk-GV5FY7ZZ.mjs +0 -11
- package/chunk-UJCSKKID.mjs +0 -4
- package/chunk-VKO7P3ED.mjs +0 -2
- package/chunk-VPEVERWE.mjs +0 -1
- package/chunk-YJQVNUW7.mjs +0 -16
- package/consent/consent-action.js +0 -1
- package/consent/consent-actions.js +0 -1
- package/consent/consent-platform.js +0 -3
- package/consent/consent-store.js +0 -5
- package/consent/cookie.js +0 -1
- package/consent/inject-script-descriptors.js +0 -1
- package/consent/replo-scripts.js +0 -1
- package/consent/script-registration-store.js +0 -2
- package/consent/script-snippets.js +0 -7
- package/consent/types.js +0 -1
- package/consent/window-api.js +0 -1
- package/content.js +0 -1
- package/env.js +0 -1
- package/gateways/canopy-api.js +0 -10
- package/hooks/use-client-value.d.ts +1 -1
- package/hooks/use-client-value.js +0 -1
- package/hooks/use-formatted-price.js +0 -1
- package/lib/buildMetadata.js +3 -3
- package/lib/canopy-error.js +0 -1
- package/lib/external-navigation.d.ts +1 -1
- package/lib/external-navigation.js +0 -1
- package/lib/get-query-client.js +0 -1
- package/lib/integration-utils.js +0 -1
- package/lib/shopify-utils.js +0 -1
- package/lib/url-utils.js +0 -1
- package/loaders/collection-loader-args.js +0 -1
- package/loaders/collection-loader.js +0 -1
- package/loaders/collection-products-loader-args.js +0 -1
- package/loaders/collection-products-loader.js +0 -1
- package/loaders/contentful-entries-loader.js +0 -1
- package/loaders/contentful-entry-loader.js +0 -1
- package/loaders/invoke-loader-action.js +0 -1
- package/loaders/invoke-loader-server.js +0 -1
- package/loaders/invoke-loader.js +0 -1
- package/loaders/judgeme-review-aggregate-loader.js +0 -1
- package/loaders/judgeme-reviews-loader.js +0 -1
- package/loaders/levanta-product-loader.js +0 -1
- package/loaders/loader-error-boundary.d.ts +11 -2
- package/loaders/loader-error-boundary.js +52 -9
- package/loaders/loader-error-details.d.ts +2 -0
- package/loaders/loader-error-details.js +7 -0
- package/loaders/loader-keys.js +0 -1
- package/loaders/loader-schemas.js +0 -4
- package/loaders/loox-review-aggregate-loader.js +0 -1
- package/loaders/loox-reviews-loader.js +0 -1
- package/loaders/metaobject-loader.js +0 -1
- package/loaders/metaobjects-loader.js +0 -1
- package/loaders/okendo-review-aggregate-loader.js +0 -1
- package/loaders/okendo-reviews-loader.js +0 -1
- package/loaders/prefetch-loaders.js +0 -1
- package/loaders/preview-placeholder.js +0 -5
- package/loaders/product-loader-args.js +0 -1
- package/loaders/product-loader.js +0 -1
- package/loaders/rebuy-recommendations-loader.js +0 -1
- package/loaders/reviews-io-review-aggregate-loader.js +0 -1
- package/loaders/reviews-io-reviews-loader.js +0 -1
- package/loaders/smile-earning-rules-loader.js +0 -1
- package/loaders/smile-rewards-loader.js +0 -1
- package/loaders/smile-vip-tiers-loader.js +0 -1
- package/loaders/statsig-experiment-loader.js +0 -1
- package/loaders/yotpo-review-aggregate-loader.js +0 -1
- package/loaders/yotpo-reviews-loader.js +0 -1
- package/money.js +0 -1
- package/next/config.js +0 -18
- package/next/image-loader.js +0 -1
- package/next/open-next.js +0 -1
- package/orders/order-status-schema.js +0 -4
- package/orders/order-status.js +0 -3
- package/package.json +8 -4
- package/providers/query-provider.js +0 -1
- package/providers/replo-provider.js +4 -3
- package/routing/evaluate.js +0 -1
- package/routing/geo.js +0 -1
- package/routing/locale.js +0 -1
- package/routing/rules.js +0 -1
- package/analytics/analytics-provider.js.map +0 -7
- package/analytics/analytics-sink.js.map +0 -7
- package/analytics/get-analytics-sinks.js.map +0 -7
- package/analytics/hooks/use-product-viewed-analytics.js.map +0 -7
- package/analytics/replo-first-party-pixel.js.map +0 -7
- package/analytics/replo-pixel-script.js.map +0 -7
- package/analytics/sinks/converge-event-mapper.js.map +0 -7
- package/analytics/sinks/converge-sink.js.map +0 -7
- package/analytics/sinks/elevar-sink.js.map +0 -7
- package/analytics/sinks/ga4-sink.js.map +0 -7
- package/analytics/sinks/meta-sink.js.map +0 -7
- package/analytics/sinks/northbeam-sink.js.map +0 -7
- package/analytics/sinks/pinterest-sink.js.map +0 -7
- package/analytics/sinks/reddit-sink.js.map +0 -7
- package/analytics/sinks/replo-sink.js.map +0 -7
- package/analytics/sinks/snapchat-sink.js.map +0 -7
- package/analytics/sinks/tiktok-sink.js.map +0 -7
- package/analytics/sinks/window-sink.js.map +0 -7
- package/analytics/utils/analytics-utils.js.map +0 -7
- package/analytics/utils/navigation-tracker.js.map +0 -7
- package/analytics/utils/shopify-funnel-gate.js.map +0 -7
- package/cart/buy-now-action.js.map +0 -7
- package/cart/cart-actions.js.map +0 -7
- package/cart/cart-loader.js.map +0 -7
- package/cart/cart-provider.js.map +0 -7
- package/cart/cart-schema.js.map +0 -7
- package/cart/cart-types.js.map +0 -7
- package/cart/gateways/cart-constants.js.map +0 -7
- package/cart/gateways/cart-gateway.js.map +0 -7
- package/cart/gateways/cookie-cart-gateway.js.map +0 -7
- package/cart/gateways/default-cart-gateway.js.map +0 -7
- package/cart/gateways/resolver-cart-gateway.js.map +0 -7
- package/cart/gateways/stripe-cart-gateway.js.map +0 -7
- package/cart/hooks/use-add-to-cart.js.map +0 -7
- package/cart/hooks/use-buy-now.js.map +0 -7
- package/cart/return-urls.js.map +0 -7
- package/cart/storefront-urls.js.map +0 -7
- package/cart/utils/cart-adjustments.js.map +0 -7
- package/cart/utils/cart-analytics.js.map +0 -7
- package/cart/utils/cart-error.js.map +0 -7
- package/cart/utils/cart-utils.js.map +0 -7
- package/cart/utils/cookie-cart-persistence.js.map +0 -7
- package/cart/utils/variant-to-cart-line.js.map +0 -7
- package/consent/consent-action.js.map +0 -7
- package/consent/consent-actions.js.map +0 -7
- package/consent/consent-platform.js.map +0 -7
- package/consent/consent-store.js.map +0 -7
- package/consent/cookie.js.map +0 -7
- package/consent/inject-script-descriptors.js.map +0 -7
- package/consent/replo-scripts.js.map +0 -7
- package/consent/script-registration-store.js.map +0 -7
- package/consent/script-snippets.js.map +0 -7
- package/consent/types.js.map +0 -7
- package/consent/window-api.js.map +0 -7
- package/content.js.map +0 -7
- package/env.js.map +0 -7
- package/gateways/canopy-api.js.map +0 -7
- package/hooks/use-client-value.js.map +0 -7
- package/hooks/use-formatted-price.js.map +0 -7
- package/lib/buildMetadata.js.map +0 -7
- package/lib/canopy-error.js.map +0 -7
- package/lib/external-navigation.js.map +0 -7
- package/lib/get-query-client.js.map +0 -7
- package/lib/integration-utils.js.map +0 -7
- package/lib/shopify-utils.js.map +0 -7
- package/lib/url-utils.js.map +0 -7
- package/loaders/collection-loader-args.js.map +0 -7
- package/loaders/collection-loader.js.map +0 -7
- package/loaders/collection-products-loader-args.js.map +0 -7
- package/loaders/collection-products-loader.js.map +0 -7
- package/loaders/contentful-entries-loader.js.map +0 -7
- package/loaders/contentful-entry-loader.js.map +0 -7
- package/loaders/invoke-loader-action.js.map +0 -7
- package/loaders/invoke-loader-server.js.map +0 -7
- package/loaders/invoke-loader.js.map +0 -7
- package/loaders/judgeme-review-aggregate-loader.js.map +0 -7
- package/loaders/judgeme-reviews-loader.js.map +0 -7
- package/loaders/levanta-product-loader.js.map +0 -7
- package/loaders/loader-error-boundary.js.map +0 -7
- package/loaders/loader-keys.js.map +0 -7
- package/loaders/loader-schemas.js.map +0 -7
- package/loaders/loox-review-aggregate-loader.js.map +0 -7
- package/loaders/loox-reviews-loader.js.map +0 -7
- package/loaders/metaobject-loader.js.map +0 -7
- package/loaders/metaobjects-loader.js.map +0 -7
- package/loaders/okendo-review-aggregate-loader.js.map +0 -7
- package/loaders/okendo-reviews-loader.js.map +0 -7
- package/loaders/prefetch-loaders.js.map +0 -7
- package/loaders/preview-placeholder.js.map +0 -7
- package/loaders/product-loader-args.js.map +0 -7
- package/loaders/product-loader.js.map +0 -7
- package/loaders/rebuy-recommendations-loader.js.map +0 -7
- package/loaders/reviews-io-review-aggregate-loader.js.map +0 -7
- package/loaders/reviews-io-reviews-loader.js.map +0 -7
- package/loaders/smile-earning-rules-loader.js.map +0 -7
- package/loaders/smile-rewards-loader.js.map +0 -7
- package/loaders/smile-vip-tiers-loader.js.map +0 -7
- package/loaders/statsig-experiment-loader.js.map +0 -7
- package/loaders/yotpo-review-aggregate-loader.js.map +0 -7
- package/loaders/yotpo-reviews-loader.js.map +0 -7
- package/money.js.map +0 -7
- package/next/config.js.map +0 -7
- package/next/image-loader.js.map +0 -7
- package/next/open-next.js.map +0 -7
- package/orders/order-status-schema.js.map +0 -7
- package/orders/order-status.js.map +0 -7
- package/providers/query-provider.js.map +0 -7
- package/providers/replo-provider.js.map +0 -7
- package/routing/evaluate.js.map +0 -7
- package/routing/geo.js.map +0 -7
- package/routing/locale.js.map +0 -7
- package/routing/rules.js.map +0 -7
package/cart/buy-now-action.js
CHANGED
|
@@ -59,8 +59,6 @@ async function buyNowWithRecoveryAction(input) {
|
|
|
59
59
|
properties: line.properties
|
|
60
60
|
})),
|
|
61
61
|
projectId: env.PROJECT_ID,
|
|
62
|
-
// canopy appends session_id={CHECKOUT_SESSION_ID} at session creation;
|
|
63
|
-
// the success route resolves it into the order status page.
|
|
64
62
|
successUrl: `${origin}/checkout/success`,
|
|
65
63
|
cancelUrl
|
|
66
64
|
};
|
|
@@ -131,4 +129,3 @@ export {
|
|
|
131
129
|
buyNowAction,
|
|
132
130
|
buyNowWithRecoveryAction
|
|
133
131
|
};
|
|
134
|
-
//# sourceMappingURL=buy-now-action.js.map
|
package/cart/cart-actions.js
CHANGED
package/cart/cart-loader.js
CHANGED
package/cart/cart-provider.js
CHANGED
|
@@ -43,7 +43,7 @@ function addLineToCart({
|
|
|
43
43
|
lineId
|
|
44
44
|
}) {
|
|
45
45
|
const existingLineIndex = cart.lines.findIndex((existingLine) => {
|
|
46
|
-
return existingLine.merchandise?.id === line.id &&
|
|
46
|
+
return existingLine.merchandise?.id === line.id &&
|
|
47
47
|
(line.sellingPlanId ?? null) === (existingLine.sellingPlanAllocation?.sellingPlan.id ?? null);
|
|
48
48
|
});
|
|
49
49
|
if (existingLineIndex >= 0) {
|
|
@@ -470,4 +470,3 @@ export {
|
|
|
470
470
|
useCart,
|
|
471
471
|
useCartInternal
|
|
472
472
|
};
|
|
473
|
-
//# sourceMappingURL=cart-provider.js.map
|
package/cart/cart-schema.js
CHANGED
package/cart/cart-types.js
CHANGED
|
@@ -2,7 +2,6 @@ const REPLO_CART_COOKIE_NAME = "replo_cart_v2";
|
|
|
2
2
|
function getCartCookieOptions() {
|
|
3
3
|
const sharedOptions = {
|
|
4
4
|
maxAge: 60 * 60 * 24 * 30,
|
|
5
|
-
// 30 days
|
|
6
5
|
httpOnly: true,
|
|
7
6
|
path: "/"
|
|
8
7
|
};
|
|
@@ -24,4 +23,3 @@ export {
|
|
|
24
23
|
REPLO_CART_COOKIE_NAME,
|
|
25
24
|
getCartCookieOptions
|
|
26
25
|
};
|
|
27
|
-
//# sourceMappingURL=cart-constants.js.map
|
|
@@ -8,8 +8,6 @@ import {
|
|
|
8
8
|
updateCartLineItemWithPersistence
|
|
9
9
|
} from "../utils/cookie-cart-persistence";
|
|
10
10
|
class CookieBasedCartGateway {
|
|
11
|
-
// Fails open (null) when the catalog can't answer: a canopy blip must not
|
|
12
|
-
// block cart writes — checkout still enforces stock and price.
|
|
13
11
|
async fetchReconciledLines(cart) {
|
|
14
12
|
const reconcileLines = this.config.reconcileLines;
|
|
15
13
|
if (!reconcileLines) {
|
|
@@ -31,8 +29,6 @@ class CookieBasedCartGateway {
|
|
|
31
29
|
return null;
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
|
-
// Catalog fetch failures fail open inside fetchReconciledLines; a
|
|
35
|
-
// reconciliation mismatch from the apply still throws.
|
|
36
32
|
async reconcile(cart, { clampQuantities }) {
|
|
37
33
|
const reconciledLines = await this.fetchReconciledLines(cart);
|
|
38
34
|
if (!reconciledLines) {
|
|
@@ -157,4 +153,3 @@ class CookieBasedCartGateway {
|
|
|
157
153
|
export {
|
|
158
154
|
CookieBasedCartGateway
|
|
159
155
|
};
|
|
160
|
-
//# sourceMappingURL=cookie-cart-gateway.js.map
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
"use server";
|
|
2
2
|
import { getCanopyApiGateway } from "../../gateways/canopy-api";
|
|
3
3
|
class ResolverCartGateway {
|
|
4
|
-
// Shopify carts are fetched from Shopify on every read — already reconciled.
|
|
5
4
|
async reconcileStoredCart(cart) {
|
|
6
5
|
return cart;
|
|
7
6
|
}
|
|
8
|
-
// Returns the gateway's wire-parsed Cart where the client Cart is expected.
|
|
9
|
-
// Safe because client = wire + widenings only — enforced by the widening
|
|
10
|
-
// assertions in cart-schema.spec.ts.
|
|
11
7
|
async getCart(cartId) {
|
|
12
8
|
try {
|
|
13
9
|
const gateway = await getCanopyApiGateway();
|
|
@@ -110,4 +106,3 @@ async function createResolverCartGateway() {
|
|
|
110
106
|
export {
|
|
111
107
|
createResolverCartGateway
|
|
112
108
|
};
|
|
113
|
-
//# sourceMappingURL=resolver-cart-gateway.js.map
|
|
@@ -36,9 +36,6 @@ function getMerchandiseFromProduct({
|
|
|
36
36
|
sellingPlanGroups: product.sellingPlanGroups ?? []
|
|
37
37
|
},
|
|
38
38
|
title: matchingVariant.title ?? "",
|
|
39
|
-
// NOTE (Max, 2026-08-03): loader prices are decimal MoneyV2 strings, but the
|
|
40
|
-
// cart is integer minor units, so convert at this storefront→cart boundary —
|
|
41
|
-
// a raw parseFloat would store "19.99" as 19 minor units (~100× too cheap).
|
|
42
39
|
price: matchingVariant.price ? fromMajorUnitsToMinorUnits(matchingVariant.price) : 0,
|
|
43
40
|
compareAtPrice: matchingVariant.compareAtPrice ? fromMajorUnitsToMinorUnits(matchingVariant.compareAtPrice) : null,
|
|
44
41
|
image: image ? { url: image.url, altText: image.altText } : null,
|
|
@@ -128,4 +125,3 @@ export {
|
|
|
128
125
|
findMerchandiseInQueryCache,
|
|
129
126
|
useAddToCart
|
|
130
127
|
};
|
|
131
|
-
//# sourceMappingURL=use-add-to-cart.js.map
|
package/cart/return-urls.js
CHANGED
package/cart/storefront-urls.js
CHANGED
package/cart/utils/cart-error.js
CHANGED
package/cart/utils/cart-utils.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
import { fromMajorUnitsToMinorUnits } from "../../_vendor/schemas/money.mjs";
|
|
2
2
|
function applyPriceAdjustment(variantPrice, adjustment, currencyCode) {
|
|
3
3
|
switch (adjustment.valueType) {
|
|
4
|
-
// NOTE (Max, 2026-08-03): variantPrice is integer minor units, but the
|
|
5
|
-
// loader emits money-typed adjustments as decimal major units (its
|
|
6
|
-
// storefront contract), so the price/fixedAmount arms convert here at the
|
|
7
|
-
// cart boundary. Percentage is unitless and needs no conversion.
|
|
8
4
|
case "price":
|
|
9
5
|
return fromMajorUnitsToMinorUnits({
|
|
10
6
|
amount: adjustment.value,
|
|
@@ -89,7 +85,6 @@ function getCartLineSubscriptionInfo(cartLine) {
|
|
|
89
85
|
isSubscription: true,
|
|
90
86
|
frequency: cartLine.sellingPlanAllocation.sellingPlan.name,
|
|
91
87
|
discount: 0,
|
|
92
|
-
// Shopify calculates this from price adjustments when available
|
|
93
88
|
sellingPlan: cartLine.sellingPlanAllocation.sellingPlan
|
|
94
89
|
};
|
|
95
90
|
}
|
|
@@ -159,4 +154,3 @@ export {
|
|
|
159
154
|
getCartLineSpecialInfo,
|
|
160
155
|
getCartLineSubscriptionInfo
|
|
161
156
|
};
|
|
162
|
-
//# sourceMappingURL=variant-to-cart-line.js.map
|
package/chunk-7OPH5UFQ.mjs
CHANGED
|
@@ -138,7 +138,6 @@ function convertLegacyContentEntryDocument(raw) {
|
|
|
138
138
|
return { legacyStatus: null, content: raw };
|
|
139
139
|
}
|
|
140
140
|
return {
|
|
141
|
-
// An unrecognized status value publishes nothing rather than guessing.
|
|
142
141
|
legacyStatus: LEGACY_CONTENT_ENTRY_STATUSES.find((candidate) => candidate === status) ?? "draft",
|
|
143
142
|
content: serializeContentEntryDocument({
|
|
144
143
|
values,
|